1
,所以我有刪除0值陣列,並調整大小
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值陣列,並調整大小
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};
的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>
對於這樣的事情。
你需要使用數組還是可以使用ArrayList? – MKreegs