读书人

List剔除元素

发布时间: 2012-12-20 09:53:21 作者: rapoo

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代码

  [one, two, two]  


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

[one]

结论:

删除还是用迭代器的比较好,其它的都会有问题.
原文地址:http://blog.sina.com.cn/s/blog_5a3ab49d0100f79a.html

读书人网 >编程

热点推荐