gpt4 book ai didi

java - 从数组中删除所有零

转载 作者:搜寻专家 更新时间:2023-10-30 19:50:53 25 4
gpt4 key购买 nike

我有一个数组:

[0, 5, 6, 0, 0, 2, 5]

我想从中删除所有零,以便返回(保持相同的顺序):

[5, 6, 2, 5]

有没有比以下方法更简单的删除所有零的方法?

int[] array = {0, 5, 6, 0, 0, 2, 5};
int len = 0;
for (int i=0; i<array.length; i++){
if (array[i] != 0)
len++;
}
int [] newArray = new int[len];
for (int i=0, j=0; i<array.length; i++){
if (array[i] != 0) {
newArray[j] = array[i];
j++;
}
}

我无法在 Arrays 类中找到任何方法,Google/SO 搜索也没有给我任何好的答案。

最佳答案

这是在代码中显示比用简单的英语解释更容易的罕见情况之一:

int targetIndex = 0;
for( int sourceIndex = 0; sourceIndex < array.length; sourceIndex++ )
{
if( array[sourceIndex] != 0 )
array[targetIndex++] = array[sourceIndex];
}
int[] newArray = new int[targetIndex];
System.arraycopy( array, 0, newArray, 0, targetIndex );
return newArray;

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com