zoukankan      html  css  js  c++  java
  • 遍历集合的Iterator删除其中的元素

    package list;

    import java.util.LinkedList;

    /*
    * 遍历集合的时候删除其中的元素

    从后往前删,每次都删除的是最后一个元素,不涉及移位
    */
    public class List01 {
    public static void main(String[] args) {
    LinkedList<Object> list = new LinkedList<>();
    list.add("I");
    list.add("love");
    list.add("you");

    /*for (int i = list.size()-1; i>= 0; i--) {
    list.remove(i);
    System.out.println(list);
    }*/

    //报出ConcurrentModificationException并发修改异常
    //modCount和expectedModCount不相等的时候会报出上面的异常
    // for(Object obj:list) {
    // list.remove(obj);
    // }

    Iterator iter = list.iterator();
    /*
    * boolean hasNext()如果迭代具有更多的元素,则返回true 。
    *(换句话说,如果next()返回一个元素而不是抛出一个异常,
    * 则返回true ) 结果 true如果迭代有更多的元素
    */
    while (iter.hasNext() ){
    /*
    * E next()返回迭代中的下一个元素。 结果 迭代中的下一个元素
    */
    iter.next();
    /*
    * default void remove()从底层集合中删除此迭代器返回的最后一个元素(可选操作)。 此方法只能调用一次next() 。
    * 如果底层集合在迭代过程中以任何方式进行修改而不是通过调用此方法,则迭代器的行为是未指定的。
    */
    iter.remove();

    }
    System.out.println(list);


    }
    }

    ----------------------------打印结果---------------------------

    [I, love]
    [I]
    []

    []

  • 相关阅读:
    eclipse版本、代号
    eclipse中jdk及编译器版本问题
    改变cmd命令行颜色
    mysql-installer-community-8.0.12.0的安装
    算法简介
    Java--将数据以文本形式导出
    安装MySQL
    网络配置
    电脑拷软件到其他设备
    探针设备
  • 原文地址:https://www.cnblogs.com/Koma-vv/p/9545669.html
Copyright © 2011-2022 走看看