我是靠谱客的博主 彩色河马,最近开发中收集的这篇文章主要介绍笔记 —— for、Iterator、ListIterator,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

定义一个集合:

ArrayList<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("v");
list.add("c");
list.add("r");
1、需求:有一个集合,判断集合中是否有 “b” 元素,如果有就动态添加一个 “Java” 元素。
public static void dynamicAdd(ArrayList<String> list) {
        // 使用 Iterator 迭代过程中,List动态添加元素会出现 - '并发修改异常';
//        Iterator<String> iterator = list.iterator();
//        while (iterator.hasNext()) {
//            if ("b".equals(iterator.next())) {
//                list.add("Java");  // ConcurrentModificationException 并发修改异常
//            }
//        }

        // List 集合特有的迭代器,实现给List动态添加元素
        ListIterator listIterator = list.listIterator();
        while (listIterator.hasNext()) {
            if ("b".equals(listIterator.next())) {
                listIterator.add("Java");
            }
        }

        // list 输出结果 [a, b, Java, v, c, r]
    }

如果动态为 ArrayList 添加元素,需要使用 List 集合特有的迭代器。

2、动态删除集合中的元素
		// for 循环删除,索引要  --(-- 是为了解决:多个"b"元素挨着的情况)
        for (int i = 0; i < list.size(); i ++) {
            if ("b".equals(list.get(i))) {
                /*
                    等同于
                    list.remove(i);
                    -- i;
                */
                list.remove(i --);
            }
        }
        // 迭代器 Iterator 动态删除
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            if ("b".equals(iterator.next())) {
            	  // ❌不能用集合的删除方法,因为迭代过程中如果集合删除并发修改异常
//                list.remove("b");  
                iterator.remove();
            }
        }
	// 使用迭代器 ListIterator 动态删除
	ListIterator listIterator = list.listIterator();
        while (listIterator.hasNext()) {
            if ("b".equals(listIterator.next())) {
                listIterator.remove();
            }
        }
	// for 循环和 迭代器组合
	for (Iterator<String> it2 = list.iterator(); it2.hasNext();) {
            if ("b".equals(it2.next())) {
                it2.remove();
            }
        }

最后

以上就是彩色河马为你收集整理的笔记 —— for、Iterator、ListIterator的全部内容,希望文章能够帮你解决笔记 —— for、Iterator、ListIterator所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部