在遍历集合时,想将符合条件的某些元素删除,开始是用了下面的方法
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14public static void main(String[] args) throws UnsupportedEncodingException { List<String> list = new ArrayList<String>(); list.add("abc"); list.add("bbc"); list.add("cbc"); Iterator<String> it = list.iterator(); while(it.hasNext()){ String str = it.next(); System.out.println(str); if(str.equals("abc")){ list.remove(str); } } }
结果报下面的异常
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
at java.util.AbstractList$Itr.next(Unknown Source)
at junit.Test.main(Test.java:23)
查了下,原来java中的集合边遍历边删除是需要使用迭代器中的方法的,改为下面
复制代码
问题解决
1
2
3
4
5
6
7
8
9
10
11
12
13
14public static void main(String[] args) throws UnsupportedEncodingException { List<String> list = new ArrayList<String>(); list.add("abc"); list.add("bbc"); list.add("cbc"); Iterator<String> it = list.iterator(); while(it.hasNext()){ String str = it.next(); System.out.println(str); if(str.equals("abc")){ it.remove(); } } }
最后
以上就是合适手机最近收集整理的关于如何边遍历集合边删除元素--使用Iterator中的remove()方法的全部内容,更多相关如何边遍历集合边删除元素--使用Iterator中内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复