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中的元素:[张三, 赵六, 李四, 赵六, 王五, 赵六]