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]  
    结论:
    删除还是用迭代器的比较好,其它的都会有问题.
    把每一件简单的事情做好,就是不简单;把每一件平凡的事情做好,就是不平凡!相信自己,创造奇迹~~
  • 相关阅读:
    单元测试
    英语学习app案列分析
    基于GUI的四则运算
    个人作业1——四则运算题目生成程序(基于控制台)
    一种新体验———构建之法
    个人作业3——个人总结(Alpha阶段)
    单元测试
    英语学习APP案例分析
    结对编程(70,73)
    软件工程HW1-四则运算软件
  • 原文地址:https://www.cnblogs.com/cyl048/p/15594028.html
Copyright © 2011-2022 走看看