0
点赞
收藏
分享

微信扫一扫

Java 算法 6-9删除数组中的0元素

幸福的无所谓 2022-04-03 阅读 54

目录标题

题目描述

编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接收数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。
  输入时首先读入数组长度,再依次读入每个元素。
  将调用此函数后得到的数组和函数返回值输出。

输入
输入描述:

输入样例:
7
2 0 4 3 0 0 5

输出

输出描述:

输出样例:
2 4 3 5
4

解题思路

在数组中删除元素后需要改变数组的长度,比较麻烦,所以用列表来实现。在一个列表中删除元素之后,把剩余的添加进另一个列表,之后输出就行。

代码

import java.util.ArrayList;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int m=scanner.nextInt();                //输入数组的个数
        ArrayList<Integer> n=new ArrayList<>();     //创建列表来接收数据
        ArrayList<Integer> x=new ArrayList<>();     //再创建一个新列表来接收删除0后的数组
        for (int i=0;i<m;i++){
            n.add(scanner.nextInt());           //输入值
        }
        for (int j=0;j<n.size();j++){           //把非0值加入到第二个列表中
            if (n.get(j)==0){
                continue;
            }else {
                x.add(n.get(j));
            }
        }
        for (int k=0;k<x.size();k++){           //依次输出,最后一位后不加空格
                if (k== x.size()-1){
                    System.out.print(x.get(k));
                }else {
                    System.out.print(x.get(k)+" ");
                }
        }
        System.out.println();               //换行
        System.out.println(x.size());       //输出元素个数
    }
}
举报

相关推荐

0 条评论