首页 > 解决方案 > java - 如何在一次迭代中从java中的数组中删除多个元素?

问题描述

我是 Java 新手,在某些时候,我不得不删除数组的一半或一部分!

另外,我知道我们可以通过索引或循环在 java 中的整数数组中删除一个元素。

但是,我想知道是否可以在一次迭代中删除 Java 中排序数组的某些部分,以避免在数组中循环?假设我们有一个整数数组,例如 [ 1, 3, 4, 7, 8, 10, 15]

然后我想从 7 删除到 15

或从 1 到 7 删除

我可以在一次迭代中删除所有元素 7、8、10、15 而不循环吗?

如果有的话,你能给我举个例子吗!

太感谢了。

标签: javaarraysarraylist

解决方案


我不确定您所说的“一次迭代”是什么意思,因为您还谈到了循环。但是我要继续假设您的意思是要创建这样的子数组而不循环遍历数组本身。这是实现这一目标的方法:

private Integer[] subarray(Integer[] array, Integer lowestValue, Integer highestValue) {
    return Arrays.copyOfRange(array,
                              Arrays.binarySearch(array, lowestValue),
                              Arrays.binarySearch(array, highestValue) + 1);
}

使用这种方法,这段代码:

Integer[] array = { 1, 3, 4, 7, 8, 10, 15 };

System.out.println(Arrays.toString(subarray(array, 1, 7)));
System.out.println(Arrays.toString(subarray(array, 7, 15)));
System.out.println(Arrays.toString(subarray(array, 4, 10)));

将产生:

[1, 3, 4, 7]
[7, 8, 10, 15]
[4, 7, 8, 10]

推荐阅读