java中循环遍历删除List和Set集合中元素的方法
16lz
2021-01-22
今天一个网友问我集合忘记了没有,这一问让我纠结了一下,最后决定把这个集合问题写下来,以免自己在犯下类似的问题:
需要删除List和Set中的某些元素,当时使用边遍历,边删除的方法,却报了以下异常:ConcurrentModificationException为了以后不会忘记,和也给遇到同样问题的同事提供一个参考:
出现错误的代码如下所示:
package set; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class Demo { public static void main(String[] args) { Set<Object> obj = new HashSet<Object>(); obj.add("a"); obj.add("b"); obj.add("c"); System.out.println("移除前:" + obj.toString()); Iterator<Object> it = obj.iterator(); for(int i=0; i<obj.size(); i++){ System.out.println(i); Object name = it.next(); if("a".equals(name) || "b".equals(name)){ obj.remove(name); i--; } } System.out.println("移除后: " + obj.toString()); } }
更多相关文章
- java入门---数据结构操作实例之获取链表的元素
- [疯狂Java]NIO.2:walkFileTree、FileVisitor(遍历文件/目录)
- Java的Web项目中Web.xml配置文件元素详解
- Java XML - 具有相同名称的嵌套元素