1 import java.util.ArrayList; 2 import java.util.Iterator; 3 import java.util.List; 4 5 public class Test3 { 6 7 public static void main(String[] args) { 8 List list = new ArrayList(); 9 10 list.add("abc1");11 list.add("abc2");12 list.add("abc3");13 list.add("abc4");14 15 Iterator it = list.iterator();16 while (it.hasNext()){17 Object obj = it.next(); //java.util.ConcurrentModificationException18 19 if (obj.equals("abc2")){20 list.add("abc9"); //在迭代器过程中,不要使用集合操作元素,容易出现异常。21 //可以使用Iterator接口的子接口ListIterator来完成在迭代中对元素进行更多的操作22 }23 else24 System.out.println("next:"+obj);25 }26 System.out.println(list);27 28 }29 30 }
1 import java.util.ArrayList; 2 import java.util.List; 3 import java.util.ListIterator; 4 5 public class Test3 { 6 7 public static void main(String[] args) { 8 List list = new ArrayList(); 9 10 list.add("abc1");11 list.add("abc2");12 list.add("abc3");13 list.add("abc4");14 15 System.out.println("list:"+list);16 17 ListIterator it = list.listIterator();//获取列表迭代器的对象18 //它可以实现在迭代过程中完成对元素的增删改查19 //注意:只有list集合具备该迭代功能20 21 System.out.println("hasNext:"+it.hasPrevious()); //返回列表中当前位置的前面是否有元素的结果。 true or false22 23 while (it.hasNext()){24 Object obj = it.next();25 26 if (obj.equals("abc2")){27 it.set("abc9"); //用指定元素替换 next 或 previous 返回的最后一个元素(可选操作)。28 }29 }30 31 System.out.println("list:"+list);32 System.out.println();33 34 System.out.println("hasNext:"+it.hasNext());35 System.out.println("hasNext:"+it.hasPrevious());36 System.out.println();37 38 while (it.hasPrevious())39 {40 System.out.println("Previous:"+it.previous());41 }42 System.out.println();43 44 System.out.println("list:"+list);45 }46 47 }
原标题:【Java学习笔记】集合框架Iterator的子接口ListIterator
关键词:JAVA