java.util.ConcurrentModeficationException
在迭代过程中,使用了集合的方法对元素进行操作.导致迭代器并不知道集合中的变化,容易引发数据的不确定性.
解决:
在迭代时,不要使用集合的方法操作元素. 使用迭代器的方法操作.
Iterator有一个子接口ListIterator可以完成该问题的解决
获取该子接口对象:
- 通过LIst接口中的listIterator()就可以获取
该列表迭代器只有LIst接口有,可以完成在迭代过程中的曾删改查
List list = new ArrayList();
list.add("a");
list.add(1,"i");
//获取列表迭代器对象
ListIterator it = list.listIterator();
//list.listIterator(int index);可以指定迭代器初始位置
while (it.hasNext()){
Object obj = it.next();//从迭代器获取到的通用Object对象
if ("i".equals(obj)){
it.add("java");//迭代器方法可以操作
}
}
System.out.println(list);