如何删除null或0或非必需值,并返回仅具有必需范围的值

时间:2019-03-15 05:35:42

标签: java arrays java-8

在Java中,如何删除null或0或非必需值,并仅返回必需范围的值。

Example:
[4,9,0,0]

Result:
[4,9]

我尝试过的是:

int someIndex = Arrays.asList(arr).indexOf(null);
arr = Arrays.copyOfRange(arr,0,someIndex);

是否有任何Java8内置函数可用于修剪数组?

2 个答案:

答案 0 :(得分:3)

怎么样:

Arrays.stream(arr).filter(v -> v != 0).toArray();

答案 1 :(得分:0)

您可以 从数组中删除空值。实际上,您永远无法从数组中删除或添加任何内容。仅设置索引的值。

您可以将它们从ArrayList<>中删除。

零值相同。

您的两个选择是使用ArrayList(可动态调整大小) 或在去除先前数据后,使用所需的值创建一个NEW数组。 (此时您只是制作自己的ArrayList

执行此操作的最佳方法可能是循环。

使用ArrayList,您只需调用.remove(index)即可删除该索引处的值。

查看ArrayList的文档

如果这是一个家庭作业问题,那么您的教授很可能希望您遍历数组并创建一个新数组。

Java数组具有.copy方法,可用于此类操作。

我会说ArrayList是您在这里寻找的“内置功能”,因为任何“调整”常规Array大小的解决方案最终都只是复制/添加数据并返回新的。对于程序员来说比较容易,但是在运行时几乎没有什么区别。