ArrayList遍历的同时删除

xiaoxiao2026-10-07  2

方法一

ArrayList<String> list = new ArrayList<String>(); list.add("one"); list.add("two"); list.add("two"); list.add("two"); list.add("two"); for(int i=0;i<list.size();i++){ if(list.get(i).equals("two")){ list.remove(i); } } System.out.println(list);

 结果:

[one, two, two]

 方法二

ArrayList<String> list = new ArrayList<String>(); list.add("one"); list.add("two"); list.add("two"); list.add("two"); list.add("two"); for(String s:list){ if(s.equals("two")){ list.remove(s); } } System.out.println(list);

 

结果:

Exception in thread "main" java.util.ConcurrentModificationException at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372) at java.util.AbstractList$Itr.next(AbstractList.java:343) at Test.main(Test.java:22)

 

方法三:

ArrayList<String> list = new ArrayList<String>(); list.add("one"); list.add("two"); list.add("two"); list.add("two"); list.add("two"); Iterator<String> iter = list.iterator(); while(iter.hasNext()){ String s = iter.next(); if(s.equals("two")){ iter.remove(); } } System.out.println(list);

结果:

[one]

 

结论:

删除还是用迭代器的比较好,其它的都会有问题.

 

 

 

相关资源:垃圾分类数据集及代码
转载请注明原文地址: https://www.6miu.com/read-5053740.html

最新回复(0)