java - java - 如何在一次迭代中从java中的数组中删除多个元素?
问题描述
我是 Java 新手,在某些时候,我不得不删除数组的一半或一部分!
另外,我知道我们可以通过索引或循环在 java 中的整数数组中删除一个元素。
但是,我想知道是否可以在一次迭代中删除 Java 中排序数组的某些部分,以避免在数组中循环?假设我们有一个整数数组,例如 [ 1, 3, 4, 7, 8, 10, 15]
然后我想从 7 删除到 15
或从 1 到 7 删除
我可以在一次迭代中删除所有元素 7、8、10、15 而不循环吗?
如果有的话,你能给我举个例子吗!
太感谢了。
解决方案
我不确定您所说的“一次迭代”是什么意思,因为您还谈到了循环。但是我要继续假设您的意思是要创建这样的子数组而不循环遍历数组本身。这是实现这一目标的方法:
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]
推荐阅读
- html - 前景文本与背景具有相同的过滤器
- android - 如何在 android 中强制设置“ImageView”字段?
- stored-procedures - 带有返回参数的存储过程 - “ODBC 驱动程序不支持请求的属性”?
- firebase - Firestore 聊天应用程序 - 构建消息主页
- python - What is the canonical representation of a point in numpy?
- c# - 网页在 Chrome 浏览器上正常加载,但是在使用 chromedriver selenium 时加载为空
- mysql - 如何使用颤振以下拉形式从 phpmyadmin 检索数据
- javascript - 用于在 HTML 字符串中提取数据的正则表达式
- javascript - 没有访问控制允许 Origin IIS
- matlab - 在 Matlab 中删除特定字符串