增强for循环在移除元素时ConcurrentModificationException
来源:互联网 发布:现在做网络推广好做吗 编辑:程序博客网 时间:2024/05/16 13:41
- 在使用增强for循环时,在循环体内移除一个集合元素后,出现concurrentModificationException异常的解决办法
List<String> list = new ArrayList<String>(); list.add("h"); list.add("y"); list.add("q"); for(String s : list){ System.out.println("外部:"+list.size()); if("q".equals(s)){ list.remove(s); } } }错误:Exception in thread "main" java.util.ConcurrentModificationException at ...
这是由于增强for循环底层调用的是迭代器的next和hasnext方法来遍历的,移除元素后,无法预知到元素的位置。这也是增强for的缺点,不能获取下标,不能动态删除集合中的内容。
- 解决的办法如下:
List<String> list = new ArrayList<String>(); list.add("h"); list.add("y"); list.add("q"); List<String> list_remove = new ArrayList<String>(); for(String s : list){ if("q".equals(s)){ list_remove.add(s); //把要移除的统一放在一个集合 } } //统一移除 list.removeAll(list_remove); System.out.println(list);//[h, y]
0 0
- 增强for循环在移除元素时ConcurrentModificationException
- ArrayList在for循环中使用remove方法移除元素
- for循环中移除元素的空指针坑
- List循环移除元素
- ConcurrentModificationException异常在Iterator移除节点上
- 增强for循环在Map中的应用
- 增强for循环在Map中的应用
- 关于循环移除数组中的元素
- 增强for循环不能改变其中元素的值;
- Java ArrayList的元素添加移除之java.util.ConcurrentModificationException异常分析
- 普通for循环和增强for循环处理数组元素的一个差别
- 增强的for循环
- 增强for循环
- 增强for循环
- JAVA增强for循环
- 7.3 增强for循环
- 04.for循环增强
- 增强的for循环
- 关于tc 中htb算法中的r2q和quantum的做用
- git使用
- Spring:源码解读Spring IOC原理
- springboot 常用注解
- 欢迎使用CSDN-markdown编辑器
- 增强for循环在移除元素时ConcurrentModificationException
- 欢迎使用CSDN-markdown编辑器
- Qt5:设置程序默认字体
- Tomcat SSL Failed to load keystore type JKS with path 系统找不到指定文件
- 本地地图api传到服务器上不显示,解决跨域问题
- C语言实例10——有关ASCII图形的输出
- 跨域错误问题has been blocked by cors policy
- 在linux字体下的显示问题及几种解决办法
- android 6.0权限全面详细分析和解决方案