zoukankan      html  css  js  c++  java
  • ArrayList

    如果需要边遍历边 remove ,必须使用 iterator。且 remove 之前必须先 next,next 之后只能用一次 remove。
    package com.study.lock;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    
    public class Test {
        public static void main(String[] args) {
            ArrayList<Integer> list = new ArrayList<Integer>();
            list.add(1);
            list.add(2);
            list.add(3);
            list.add(4);
            list.add(5);
            //报错:ConcurrentModificationException
    //        for (Integer integer : list) {
    //            list.remove(integer);
    //        }
            
            Iterator<Integer> iterator = list.iterator();
            
            //ConcurrentModificationException
    //        while(iterator.hasNext()) {
    //            list.remove(iterator.next());
    //            System.out.println("list.size="+list.size());
    //        }
            
            //报错: 通过iterator边遍历边remove元素的正确方式
            while(iterator.hasNext()) {
                System.out.println(iterator.next());
                iterator.remove();
                System.out.println("list.size="+list.size());
            }
        }
    }
    list边遍历边修改

    https://juejin.im/post/6844903566331609096

  • 相关阅读:
    JavaSE-面向对象
    JavaSE-数组
    JavaSE-方法
    JavaSE-流程控制
    JavaSE-基础语法
    Java-初识Java
    PTH的几种食用姿势
    CVE-2020-1472 Zerologon
    OpenGL 术语
    使用IDEA创建SpringMVC项目
  • 原文地址:https://www.cnblogs.com/yfzhou528/p/13677268.html
Copyright © 2011-2022 走看看