不要在 foreach 循环里进行元素的 remove / add 操作

简介:

在foreach 循环里面,不能用remove方法,因为当list里面的最后一个元素被remove时候,会报错。

摘自《阿里巴巴Java开发手册》

【强制】不要在 foreach 循环里进行元素的 remove / add 操作。 remove 元素请使用 Iterator

方式,如果并发操作,需要对 Iterator 对象加锁。

反例:

List<String> a = new ArrayList<String>();

a.add("1");

a.add("2");

for (String temp : a) {

if("1".equals(temp)){

    a.remove(temp);

}

}

说明:以上代码的执行结果肯定会出乎大家的意料,那么试一下把“1”换成“2”,会是同样的

结果吗?

正例:

Iterator<String> it = a.iterator();

while(it.hasNext()){

String temp = it.next();

if(删除元素的条件){

    it.remove();

}

}




      本文转自建波李 51CTO博客,原文链接:http://blog.51cto.com/jianboli/1971180,如需转载请自行联系原作者




相关文章
|
3月前
|
前端开发 程序员
【面试题】在循环 for、for-in、forEach、for-of 、map中改变item的值,会发生什么?
【面试题】在循环 for、for-in、forEach、for-of 、map中改变item的值,会发生什么?
|
27天前
使用List中的remove方法遇到数组越界
使用List中的remove方法遇到数组越界
17 2
|
6月前
|
Python
python之列表中常用的函数:append,extend,insert,pop,remove,del函数的定义与使用方法,元素是否在列表中的判断
python之列表中常用的函数:append,extend,insert,pop,remove,del函数的定义与使用方法,元素是否在列表中的判断
|
9月前
List中移除指定元素
List中移除指定元素
60 0
Zp
|
Java
List集合的clear方法
List集合的clear方法
Zp
240 0
List的remove操作一定要小心!
List的remove操作一定要小心!
|
存储 Java 程序员
foreach中不允许对元素进行add和remove底层原理
foreach中不允许对元素进行add和remove底层原理 🍅 Java学习路线:搬砖工的Java学习路线 🍅 作者微信公众号:程序员小王 🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF 🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝
93 0
foreach中不允许对元素进行add和remove底层原理
常见遍历方法 for循环、forEach、map、filter、find、findIndex、some、every
常见遍历方法 for循环、forEach、map、filter、find、findIndex、some、every
136 0
|
安全 Java
遍历List移除元素的若干种方法
遍历List移除元素的若干种方法
304 0
76. List如何一边遍历,一边删除
76. List如何一边遍历,一边删除
119 0
76. List如何一边遍历,一边删除