java - 如何从 int 数组中删除零?

标签 java arrays int

这是我的数组:int[] test= new int[] {1,0,1,0,0,0,0,0,0,0}

现在我需要从此数组中删除所有零,使其显示如下:输出:{1,1}

我尝试了此代码 link-StackOverFlow但对我不起作用。

    int j = 0;
    for (int i = 0; i < test.length; i++) {
        if (test[i] != 0)
            test[j++] = test[i];
    }
    int[] newArray = new int[j];
    System.arraycopy(test, 0, newArray, 0, j);
    return newArray;

请帮我解决这个问题。

最佳答案

改用列表。然后你就可以执行list.removeAll(Collections.singleton(0));。数组对于这种事情来说要困难得多。

示例:

List<Integer> list = new ArrayList<Integer>(Arrays.asList(1, 0, 2, 0, 3, 0, 0, 4));
list.removeAll(Collections.singleton(0));
System.out.println(list);

输出:[1,2,3,4]

关于java - 如何从 int 数组中删除零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27638343/

相关文章:

java - 如何在不同的目录中编译和运行 Java 类?

c - 如何将 int 数组(保存十六进制浮点值)转换回 C 中的浮点值

加号运算符的 C++ 重载

java - 长流过滤

java - 在可运行的jar中使用jogl,手动加载dll

c++ - 字符串到字符数组不起作用

javascript - 是否使用 [array].filter 或 _.filter

c# - 如何让 AutoFixture 创建一个 >0 的整数,而不是另一个数字?

java - 我的基本二进制搜索方法不适用于 Java 中 int 数组中的一个特定值

java - 在 Java Lambda 中返回二级列表