zoukankan      html  css  js  c++  java
  • java list.remove的坑

    在做项目的过程中用到了,list.remove,踩了几个坑,在此记录一下

    1.

    List<Integer> list

    list.remove(i);

    当list内元素是Integer类型时,要注意remove的参数,是元素,还是元素的编号。

    2.

    list在remove是发生java.util.ConcurrentModificationException异常

    需要使用迭代器的remove,不能直接用list的remove

    public static void main(String[] args) {
    ArrayList<String> list = new ArrayList<String>();
    list.add("111");
    list.add("222");
    list.add("333");
    list.add("444");
    list.add("555");
    list.add("666");
    list.add("777");
    list.add("888");

    Iterator<String> it=list.iterator();
    int i=0;
    while (it.hasNext()){
    String s=it.next();
    i++;
    if(i==2){
    it.remove();
    System.out.println("remove:"+s);
    System.out.println();
    }
    }
    }

    3.
    for(int i=0;i<list.size();i++){
      list.remove(i);
    }
    遍历list执行remove时,list的size会变小,可能会产生越界,建议用迭代器遍历移除
  • 相关阅读:
    Java设计模式——单例模式
    Java设计模式——工厂模式
    多线程
    Collection集合
    内部类
    多态
    接口
    面向对象(2)
    数组
    面向对象(1)
  • 原文地址:https://www.cnblogs.com/jakin3130/p/10948679.html
Copyright © 2011-2022 走看看