zoukankan      html  css  js  c++  java
  • ArrayList用迭代器遍历的过程中是否可以删除数据?

    使用迭代器遍历ArrayList并尝试删除数据:

    public class CollectionApp {
        public static void main(String[] args) {
            List<Integer> list = new ArrayList<>();
            list.add(0);
            list.add(1);
            list.add(2);
            list.add(3);
            list.add(4);
            Iterator<Integer> iterator = list.iterator();
            while (iterator.hasNext()){
                Integer obj = iterator.next();
                if(obj==2){
                    list.remove(obj);
                }
            }
            System.out.println(list.toString());
        }
    }

    删除失败,并抛出如下的异常:

    用循环替代迭代器遍历:

    public class CollectionApp {
        public static void main(String[] args) {
            List<Integer> list = new ArrayList<>();
            list.add(0);
            list.add(1);
            list.add(2);
            list.add(3);
            list.add(4);
           //迭代器用循环替换
            for(int i=0;i<list.size();i++){
                if(list.get(i)==2){
                    list.remove(list.get(i));
                }
            }
            System.out.println(list.toString());
        }
    }

    成功的删除数据

  • 相关阅读:
    进程同步&&进程互斥
    CHAP4 字符串和格式化输入输出
    记录学习到的内容
    数据链路层 差错控制
    二叉树的顺序存储
    Java复习笔记
    Stream流
    函数式接口
    网络编程
    接口,多态,抽象类总结
  • 原文地址:https://www.cnblogs.com/junlu/p/14227337.html
Copyright © 2011-2022 走看看