在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内置函数可用于修剪数组?
答案 0 :(得分:3)
怎么样:
Arrays.stream(arr).filter(v -> v != 0).toArray();
答案 1 :(得分:0)
您可以 不 从数组中删除空值。实际上,您永远无法从数组中删除或添加任何内容。仅设置索引的值。
您可以将它们从ArrayList<>
中删除。
零值相同。
您的两个选择是使用ArrayList
(可动态调整大小)
或在去除先前数据后,使用所需的值创建一个NEW数组。 (此时您只是制作自己的ArrayList
)
执行此操作的最佳方法可能是循环。
使用ArrayList,您只需调用.remove(index)
即可删除该索引处的值。
查看ArrayList的文档
如果这是一个家庭作业问题,那么您的教授很可能希望您遍历数组并创建一个新数组。
Java数组具有.copy
方法,可用于此类操作。
我会说ArrayList
是您在这里寻找的“内置功能”,因为任何“调整”常规Array大小的解决方案最终都只是复制/添加数据并返回新的。对于程序员来说比较容易,但是在运行时几乎没有什么区别。