zoukankan      html  css  js  c++  java
  • 集合框架之三种迭代的能否删除

    一:普通for循环的删除

    1 // 普通for循环,通过索引删除,删除后索引要--
    2         for (int i = 0; i < list.size(); i++) {
    3             if ("d".equals(list.get(i))) {
    4                 list.remove(i--);
    5             }
    6         }
    7         System.out.println(list);

    二:迭代器两种遍历(删除)方式

      方式一:

    1 // 迭代器删除,不能用集合的删除方法,因为迭代过程中修改会发生并发修改异常
    2         ListIterator<String> iter = list.listIterator();
    3         while (iter.hasNext()) {
    4             if ("d".equals(iter.next())) {
    5                 iter.remove();
    6             }
    7         }
    8         System.out.println(list);

      方式二:

    1      for(ListIterator<String> iter=list.listIterator();iter.hasNext();){
    2             if("d".equals(iter.next())){
    3                 iter.remove();
    4             }
    5         }
    6         System.out.println(list);

    三:增强fore循环删除

    // 增强for循环底层依赖迭代器,不能删除,只能遍历;删除会出现并发修改异常( java.util.ConcurrentModificationException)
            for (String string : list) {
                list.remove(string);//这是错误的代码
            }
            System.out.println(list);
  • 相关阅读:
    Scala_模式匹配
    Scala_特质
    Scala_继承
    Scala_对象
    Scala_类
    Scala_关键字
    Scala_数据结构
    Scala_方法、函数、柯里化
    Scala_控制结构
    Scala_基本语法
  • 原文地址:https://www.cnblogs.com/le-ping/p/7413166.html
Copyright © 2011-2022 走看看