您的位置:首页 > 其它

List循环使用remove()方法

2017-11-16 10:48 190 查看

小记

有时候敲代码会遇到这种情况,循环一个list,执行完一个后就要移除它,然后继续循环,如果不注意写很容易运行报错:java.util.ConcurrentModificationException。

在阅读《Java编程思想》时,看到一种很好的写法,不由地想记录下来,在这里简称为方法一,另外还有一种常用的方法,简称为方法二,下面是两个方法的代码:

方法一

List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");

if (list.size() > 0){
for (String s:new ArrayList<>(list)){
System.out.println(s);
list.remove(s);
}
}
/*
Output : 1
2
3
*/


方法二

List<String> list = new ArrayList<>();
list.add("1");
list.add("2");
list.add("3");

if (list.size() > 0){
for (int i = list.size() - 1; i >= 0; i--){
System.out.println(list.get(i));
list.remove(i);
}
}
/*
Output : 3
2
1
*/


总结

个人更喜欢使用方法一,但是不知道会不会有啥隐患呢~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: