博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
不要在foreach循环里进行元素的remove/add操作
阅读量:7113 次
发布时间:2019-06-28

本文共 1024 字,大约阅读时间需要 3 分钟。

hot3.png

/** * 不要在foreach循环里进行元素的remove/add操作。
* remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。 * @author lixiangke * @date 2017/11/29 */public class TestForIn { public static void main(String[] args) { // 从集合中移除元素, 错误示例 List
list = new ArrayList
(); list.add("1"); list.add("2"); for (String item : list) { if ("2".equals(item)) { list.remove(item); } } // 上面的循环编译后等价于下面 /* for (Iterator
it = list.iterator(); it.hasNext();) { String ele = it.next(); if ("2".equals(ele)) { list.remove(ele); } } */ // // 从集合中移除元素, 正确示例 Iterator
iterator = list.iterator(); while (iterator.hasNext()) { String item = iterator.next(); if ("2".equals(item)) { iterator.remove(); } } }}

转载于:https://my.oschina.net/ironwill/blog/1581658

你可能感兴趣的文章
小程序里json字符串转json对象需注意的地方
查看>>
struts过滤器和拦截器的区别
查看>>
runtime 的常用姿势
查看>>
Unix编程艺术阅读笔记
查看>>
创建git库
查看>>
[译] 将第三方动画库集成到项目中 — 第 1 部分
查看>>
JavaScript 小数取整的函数
查看>>
小程序flex-direction
查看>>
编程基本功(一)
查看>>
迭代器随笔
查看>>
flex布局居中无效果注意是否设置了宽度
查看>>
Bootstrap学习笔记系列5------Bootstrap图片显示
查看>>
CentOS服务器下对mysql的优化
查看>>
linux内核模块开发
查看>>
android 小结
查看>>
【转】Android 基于Socket的聊天室
查看>>
小记录
查看>>
ubuntu安装完无法用xshell,远程链接
查看>>
C# 对象哈希码
查看>>
高效的JS数组操作
查看>>