所以我有
int[] a = {0, 0, 0, 0, 4, 2, 3, 9};
int[] b = {0, 0, 0, 0, 0, 0, 1, 3};
如何获取它以便删除值为0的所有元素,并且每个数组都没有分配任何额外的不必要空间。
int[] a = {4, 2, 3, 9};
int[] b = {1, 3};
答案 0 :(得分:2)
Java 8解决方案:
a = Arrays.stream(a).filter(v -> v != 0).toArray();
解决方案不需要Java 8:
int count = 0;
for (int i = 0; i < a.length; i++)
if (a[i] != 0)
a[count++] = a[i];
a = Arrays.copyOf(a, count);
但是,我认为最好的解决方案是使用ArrayList<Integer>
来做这类事情。