• 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]  
    结论:
    删除还是用迭代器的比较好,其它的都会有问题.
    把每一件简单的事情做好,就是不简单;把每一件平凡的事情做好,就是不平凡!相信自己,创造奇迹~~
  • 相关阅读:
    学习笔记
    js闭包
    一个非必现问题的定位和反思
    C语言的设计模式面向对象机制的实现(一)
    多线程和单线程的执行效率问题
    python 多态
    C语言的设计模式接口隔离
    构建表达式二叉树
    C语言的设计模式依赖倒置
    C语言的设计模式单一职责
  • 原文地址:https://www.cnblogs.com/cyl048/p/15594028.html
Copyright © 2020-2023  润新知