从LIst集合中安全的删除元素
2024-10-18 03:46:18
package cn.rocker.list; import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; /**
* @ClassName: RemoveEleWhileIterator
* @Description: 集合在遍历过程中安全的删除集合中的元素
* @author 112
* @date 2018年3月26日 上午11:33:31
*/
public class RemoveEleWhileIterator { void init(List<Integer> list) {
list.clear();
for (int i = 0; i < 10; i++) {
list.add(i + 1);
}
} /**
* 移除方法一
* @param list
*/
void remove(List<Integer> list) {
for (int i = 0; i < 5; i++) {
list.remove(i);
}
} /**
* 移除方法二
* @param list
*/
void removeTwo(List<Integer> list) {
for (int i : list) {
if (i < 6) {
list.remove(i);
}
}
} /**
* 移除方法三
* @param list
*/
void removeThree(List<Integer> list) {
for (Iterator<Integer> iter = list.iterator(); iter.hasNext();) {
int i = iter.next();
if (i < 6) {
iter.remove();
}
}
} public static void main(String[] args) {
RemoveEleWhileIterator testList = new RemoveEleWhileIterator();
List<Integer> list = new ArrayList<Integer>(); // 第一种方法
testList.init(list);
testList.remove(list);
System.out.println(list); // 第二种方法
try {
testList.init(list);
testList.removeTwo(list);
System.out.println(list);
} catch (Exception e) {
e.printStackTrace();
} // 第三种方法
testList.init(list);
testList.removeThree(list);
System.out.println(list);
}
}
运行结果如下:
[2, 4, 6, 8, 10]
java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
[6, 7, 8, 9, 10]
最新文章
- OS存储器管理(二)
- H5实现俄罗斯方块(三)
- CocoaPods 添加第三方库报错
- 【C#网络基础】C# get post请求
- Xcode8出现AQDefaultDevice (173): skipping input stream 0 0 0x0
- JSON对象长度和遍历方法(转)
- Vue 爬坑之路(三)—— 使用 vue-router 跳转页面
- 如何去掉wordpress网站url里面的index.php(Apache服务器)
- software testing
- java 基础 instance of
- Redis服务端的搭建(初级)
- 类似于PLC上升沿的TRIO代码示例
- shell基础:用户自定义变量
- mint18.3 升级linux-libc-dev_4.4.0-102.132 导致外接显示屏无法旋转,设置分辨率
- linux启动程序和关闭程序脚本
- English trip -- VC(情景课)10 D Reading 阅读练习
- windows python3 安装gittle
- 2017-2018-1 20155317 IPC
- 记录下一个自己不常用的关键字-yield
- MNIST手写数字识别 Tensorflow实现
热门文章
- 资源推荐:特意挑选了11个可以称得上“神器”的Windows工具下载
- Web.xml中Filter过滤器标签几个说明
- python之旅七【第七篇】面向对象之类成员
- Codeforces Round #419 Div. 1
- CH2101 可达性统计(算竞进阶习题)
- bzoj 2653: middle (主席树+二分)
- 阿里云.log
- SuperSocket 案例
- 在 CentOS 上编写 init.d service script [转]
- 洛谷P3602 Koishi Loves Segments(贪心,multiset)