zoukankan      html  css  js  c++  java
  • ArrayList遍历的同时删除--- 删除还是用迭代器的比较好,其它的都会有问题.

    http://javag.iteye.com/blog/403097

    ArrayList遍历的同时删除--

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

     
     
    博客分类:

    方法一

    Java代码  收藏代码
    1. ArrayList<String> list = new ArrayList<String>();  
    2.         list.add("one");  
    3.         list.add("two");  
    4.         list.add("two");  
    5.         list.add("two");  
    6.         list.add("two");  
    7.         for(int i=0;i<list.size();i++){  
    8.             if(list.get(i).equals("two")){  
    9.                 list.remove(i);  
    10.             }  
    11.         }  
    12.         System.out.println(list);  

     结果:

    Java代码  收藏代码
    1. [one, two, two]  

     方法二

    Java代码  收藏代码
    1. ArrayList<String> list = new ArrayList<String>();  
    2. list.add("one");  
    3. list.add("two");  
    4. list.add("two");  
    5. list.add("two");  
    6. list.add("two");  
    7. for(String s:list){  
    8.     if(s.equals("two")){  
    9.         list.remove(s);  
    10.     }  
    11. }  
    12. System.out.println(list);  

    结果:

    Java代码  收藏代码
    1. Exception in thread "main" java.util.ConcurrentModificationException  
    2.     at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)  
    3.     at java.util.AbstractList$Itr.next(AbstractList.java:343)  
    4.     at Test.main(Test.java:22)  

    方法三:

    Java代码  收藏代码
    1. ArrayList<String> list = new ArrayList<String>();  
    2. list.add("one");  
    3. list.add("two");  
    4. list.add("two");  
    5. list.add("two");  
    6. list.add("two");  
    7. Iterator<String> iter = list.iterator();  
    8. while(iter.hasNext()){  
    9.     String s = iter.next();  
    10.     if(s.equals("two")){  
    11.         iter.remove();  
    12.     }  
    13. }  
    14. System.out.println(list);  

    结果:

    Java代码  收藏代码
    1. [one]  

    结论:

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

  • 相关阅读:
    MYSQL5.6学习——mysqldump备份与恢复
    【转】分布式与集群的区别
    (四)伪分布式下jdk1.6+Hadoop1.2.1+HBase0.94+Eclipse下运行wordCount例子
    (三)配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序
    git pull总是要输入账号和密码
    Undefined index: validate(thinkphp)
    mysql table status
    如何学习web开发环境搭建和脚手架
    serversql tinkphp
    apache 配置
  • 原文地址:https://www.cnblogs.com/donaldlee2008/p/5297084.html
Copyright © 2011-2022 走看看