标签:
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.ConcurrentModificationException 18 19 if (obj.equals("abc2")){ 20 list.add("abc9"); //在迭代器过程中,不要使用集合操作元素,容易出现异常。 21 //可以使用Iterator接口的子接口ListIterator来完成在迭代中对元素进行更多的操作 22 } 23 else 24 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 false 22 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
标签:
原文地址:http://www.cnblogs.com/Newbie-Cai/p/5799027.html