summer_021 发表于 2013-2-7 15:02:15

List删除元素

方法一
Java代码

    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);

结果:
Java代码

   

方法二
Java代码
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);   
   


结果:
Java代码

   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)
   



方法三:
Java代码
    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);   
   
结果:
Java代码

   

结论:

删除还是用迭代器的比较好,其它的都会有问题.
原文地址:http://blog.sina.com.cn/s/blog_5a3ab49d0100f79a.html
页: [1]
查看完整版本: List删除元素