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]
    []

    []

  • 相关阅读:
    hdu 2665 划分树
    概率模型与条件随机场
    shell中各种括号的作用()、(())、[]、[[]]、{}
    今日BBC
    小贝_mysql主从复制作用以及案例
    c++ builder 版CreateAnonymousThread用法
    安卓UI适配限定符
    编译3.10内核 出现错误 “undefined reference to....&quot; 解决方法
    iptables的4表5链(未完)
    已有iptables表的查看
  • 原文地址:https://www.cnblogs.com/Koma-vv/p/9545669.html
Copyright © 2011-2022 走看看