3 回答
TA贡献1810条经验 获得超4个赞
您可以使用如下所示的一些代码获得相同的结果:
// Add to params all inputs to remove from array
List<Integer> params = new ArrayList<>();
// Use Integer class instead of int datatype
Integer array[] = new Integer[] {0,1,2,3,4,3};
// Convert array to List class
List<Integer> list = new ArrayList<>(Arrays.asList(array));
// Remove all matches
list.removeAll(params);
TA贡献1859条经验 获得超6个赞
您需要两个索引变量来进行复制:一个贯穿输入数组(如原始代码中所示),另一个跟踪您在输出数组中的位置(new 变量)。它们不能相互计算(它们在开始时是相同的,但可以明显小于最后)abba
int b = 0;
for(int a = 0; a < in.length; a++) {
if(in[a] != v) {
copy[b] = in[a];
b++;
}
}
TA贡献2003条经验 获得超2个赞
使用Java8及其流功能,您可以执行如下操作:
public static void main(String[] args) {
int[] array = {3236,47,34,34,73,46,3,64,473,4,4,346,4,63,644,4,6,4};
int[] newArray = removeAllOccurencesOf(array, 4);
System.out.println(Arrays.toString(newArray));
}
public static int[] removeAllOccurencesOf(int[] array, int numberToRemove)
{
//stream integers from array, filter the ones that correspond to number to remove, get what's left to new array
int[] newArray = IntStream.of(array).filter(i->i!=numberToRemove).toArray();
return newArray;
}
添加回答
举报