循环的时候如何安全地删除java集合的元素
2011-08-01 11:35
706 查看
举个例子就可以了
也是网上看到的
也算个知识点吧
第一个方法输出
test1 : [one, two, two]
第二个方法报错
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 TestList.test2(TestList.java:34)
at TestList.main(TestList.java:8)
第三个方法输出
test3 : [one]
可以看出第三种方法删除比较正确
也是网上看到的
也算个知识点吧
import java.util.ArrayList; import java.util.Iterator; public class TestList { public static void main(String[] args) { test1(); test2(); test3(); } public static void test1() { 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("test1 : " + list); } public static void test2() { 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("test2 : " + list); } public static void test3() { 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("test3 : " + list); } }
第一个方法输出
test1 : [one, two, two]
第二个方法报错
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 TestList.test2(TestList.java:34)
at TestList.main(TestList.java:8)
第三个方法输出
test3 : [one]
可以看出第三种方法删除比较正确
相关文章推荐
- Java中如何循环删除一个集合(如List)中的多个元素
- java中如何在循环中准确删除集合中的某个元素,并且不引起错误
- Java中如何循环删除一个集合(如List)中的多个元素
- Java中如何循环删除一个集合(如List)中的多个元素
- Java中如何循环删除一个集合(如List)中的多个元素
- Java中如何循环删除一个集合(如List)中的多个元素
- Java中如何循环删除一个集合(如List)中的多个元素
- java循环中如何删除集合中的元素
- Java中如何循环删除一个集合(如List)中的多个元素
- 如何删除JAVA集合中的元素
- 如何删除Java集合中的元素
- 循环中安全删除集合元素
- Java中集合删除元素时候关于ConcurrentModificationException的迷惑点
- 如何删除JAVA集合中的元素
- java集合循环中删除元素问题以List集合为例
- Java在循环中删除集合中的元素
- Java中如何删除一个集合中的多个元素
- java中循环遍历删除List和Set集合中元素的方法(推荐)
- 【Array、List】Java数组或集合中如何删除元素