文档章节

循环遍历list的时候删除list的元素报错

孙幼凌
 孙幼凌
发布于 2017/02/13 14:51
字数 139
阅读 96
收藏 0

【强制】不要在 foreach 循环里进行元素的 remove/add 操作。 remove 元素请使用 Iterator
方式,如果并发操作,需要对 Iterator 对象加锁。
    反例:
         List<String> a = new ArrayList<String>();
            a.add("1");
            a.add("2");
            for (String temp : a) {
            if("2".equals(temp)){
                a.remove(temp);
                }
            }
说明: 这个例子的执行结果会出乎意料,报错了。

    因为list在循环中的时候是不可以删除它的元素的。

正例:
    Iterator<String> it = a.iterator();
        while(it.hasNext()){
            String temp = it.next();
            if(删除元素的条件){
                it.remove();
              }
        }

© 著作权归作者所有

共有 人打赏支持
孙幼凌
粉丝 4
博文 56
码字总数 31262
作品 0
合肥
程序员
JAVA中循环删除list中元素的方法总结

循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区。下面就来讲一讲。。伸手党可直接跳...

文文1
2016/12/08
67
0
Iterator/foreach遍历list时,删除元素的报错问题

今天遇到一个问题,代码如下: 创建了一个,然后给他了4个元素,将转为然后进行遍历,在遍历过程中对list进行,在测试的过程中,发现居然会出现报错现象,一直想不明白,后来根据报错信息去查...

KingJack灬
2017/12/07
0
0
正确处理移除list中数据

首先大家先看一段代码: for (Map<String, Object> map : dataMap) {String roomStateStr = (String) map.get("RoomState");int mapRoomState = Integer.parseInt(roomStateStr);if(mapRoomS......

zchuanzhao
2015/10/12
24
0
python列表(list)操作

一、创建列表 a_list = ['a',1,('a','b')]b_list = ['a','b',0,1,3] 二、创建连续的list list = range(1,5) #即 L=[1,2,3,4],不含最后一个元素 list = range(1, 10, 2) #即 L=[1, 3, 5, 7, 9......

liaojie
2014/03/18
0
0
jdk1.6集合源码阅读之LinkedList

如果说ArrayList是基于数组实现的List,那么LinkedList是基于链表实现的List。 1.定义 而Dqueue接口 是一个双向队列,也就是既可以先入先出,又可以先入后出,再直白一点就是既可以在头部添加...

双月通天
2016/08/24
7
0

没有更多内容

加载失败,请刷新页面

加载更多

docker update:更新一个或多个容器的配置

更新容器的配置 docker update:更新一个或多个容器的配置。 具体内容请访问:https://docs.docker.com/engine/reference/commandline/update/#options 语法:docker update [OPTIONS] CONTA...

lwenhao
27分钟前
1
0
unload事件

unload事件不触发的原因分析 1.代码位置不对,应该优先加载,不能放到回调函数中 2.浏览器不支持 3.最可能的原因,unload事件中触发的函数是一个异步执行的函数,浏览器是不允许在窗口关闭之后在...

狮子狗
40分钟前
1
0
DbForge Schema Compare for MySQL入门教程:如何连接到数据库

【dbForge Schema Compare for MySQL下载】 要创建连接: 1. 在“Connection” 工具栏上单击“New Connection”按钮 。 2. 在“Host” 框中输入主机名。 3. 在“Port” 框中输入端口信息。默...

Miss_Hello_World
42分钟前
1
0
公众号关联微信小程序

公众号关联小程序发送关联通知,对于推广小程序有着很大的帮助。所以问题来了,怎么做到在公众号关联小程序发送关联通知呢? 一:开发中遇到的问题 之前在开发过程中发现,公众号已经关联小程...

Code辉
55分钟前
1
0
并发编程基础之JMM学习摘要

一、JMM定义 Java内存模型即Java Memory Model(JMM),JMM决定一个线程对共享变量的写入何时对另一个线程可见(内存可见性),从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程...

狠一点
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部