zoukankan      html  css  js  c++  java
  • Java中List循环遍历的时候删除当前对象(自己)

    方法一
    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);  
    13  结果:
    14 Java代码  
    15 [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);  
    13  
    14 结果:
    15 Java代码  
    16 Exception in thread "main" java.util.ConcurrentModificationException  
    17     at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)  
    18     at java.util.AbstractList$Itr.next(AbstractList.java:343)  
    19     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);  
    15 结果:
    16     Java代码  
    17     [one]  
    结论:
    删除还是用迭代器的比较好,其它的都会有问题.
    把每一件简单的事情做好,就是不简单;把每一件平凡的事情做好,就是不平凡!相信自己,创造奇迹~~
  • 相关阅读:
    ASP.NET程序中常用的三十三种代码【转】
    BTree,BTree,B+Tree,B*Tree都是什么
    调用Google地图
    JS特效总结
    2005 加入博客园
    .net Windows服务程序安装与安装程序的制作
    七夕,爱似流年
    JS+CSS仿魔兽游戏进入进度条特效
    常用正则表达式
    Google翻译网站添加Google翻译,让老外也看的懂你的网站
  • 原文地址:https://www.cnblogs.com/cyl048/p/15594028.html
Copyright © 2011-2022 走看看