迭代器在遍历元素时要注意的事项

package com.javaxxz.test;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

/**
 *迭代器在遍历元素时要注意的事项:
 *   1、在迭代器迭代元素的过程中(迭代器一旦创建到使用结束的时段),
 *       不允许使用集合对象改变集合中的元素个数,
 *       如果需要添加或者删除只能使用迭代器的方法进行操作。
 *
 *   2、如果使用过了集合对象改变集合中元素的个数,
 *       那么就会出现java.util.ConcurrentModificationException异常
 */
public class Demo5 {
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("张三");
        list.add("李四");
        list.add("王五");

        ListIterator it = list.listIterator();
        while (it.hasNext()) {
            System.out.print(it.next() + ",");
            // 使用集合对象改变集合中元素的个数
            // list.add("赵六"); // 抛出java.util.ConcurrentModificationException
            // 能使用迭代器的方法进行操作
            it.add("赵六");
        }
        System.out.println();
        System.out.println("现在list中的元素:" + list);

        /*
        ListIterator it2 = list.listIterator(); // 迭代器创建
        list.add("test"); // 迭代器创建到使用期间,集合对象改变集合中的元素个数。抛出异常
        it2.next(); // 迭代器使用
        */
    }
}

运行结果

张三,李四,王五,
现在list中的元素:[张三, 赵六, 李四, 赵六, 王五, 赵六]

 

转载于:https://my.oschina.net/zhui666/blog/1799289

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值