删除List和Set中的某些元素
错误代码的写法:
Setset = new HashSet ();set.add("aaaaaa");set.add("bbbbbb");set.add("cccccc");set.add("dddddd");set.add("eeeeee");set.add("ffffff");set.add("gggggg");for (String str : set) { if ("dddddd".equals(str)) { set.remove(str); }}
运行报错:
Exception in thread "main" java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793) at java.util.HashMap$KeyIterator.next(HashMap.java:828) at test2.Test1.main(Test1.java:16)
使用如上方式遍历的时候,不能增加、删除set中的数据
正确代码的写法
Setset = new HashSet ();set.add("aaaaaa");set.add("bbbbbb");set.add("cccccc");set.add("dddddd");set.add("eeeeee");set.add("ffffff");set.add("gggggg");Iterator it = set.iterator();while (it.hasNext()) { String str = it.next(); if ("dddddd".equals(str)) { it.remove(); }}for (String str : set) { System.out.println(str);}
输出:
aaaaaaffffffeeeeeebbbbbbccccccgggggg