标签:
public class ListIteratorDemo { public static void main(String[] args) { List list = new ArrayList(); list.add("one"); list.add("two"); list.add("three"); list.add("five"); /*for(Iterator it = list.iterator(); it.hasNext();){ Object obj = it.next(); if(obj.equals("five")){ 在迭代过程中,如果使用了集合的方法进行增删改查操作,那么迭代器会抛出异常. 原因是,迭代器不知道集合中的变化,容易发生调用的不确定性. 解决办法: 在迭代时,不要使用集合的方法进行操作元素. 可以使用迭代器的子接口ListIterator<E>中的方法就可以. 里面有很多操作元素的方法.而且可以正向迭代,反向迭代. * //list.add("four"); // 异常 ConcurrentModificationException } System.out.println(obj); }*/ //用ListIterator重新解决问题 for(ListIterator it = list.listIterator(); it.hasNext();){ Object obj = it.next(); if("three".equals(obj)){ it.add("four"); //[one, two, three, four, five] // it.set("3"); //[one, two, 3, five] //对比输出结果 } } System.out.println(list); } }
List在迭代过程中如何进行增删改查 ListIterator知识点
标签:
原文地址:http://www.cnblogs.com/zyjcxc/p/5452927.html