集合框架-ListIterator接口
1 package cn.itcast.p4.list.demo; 2 3 import java.util.ArrayList; 4 import java.util.Iterator; 5 import java.util.List; 6 import java.util.ListIterator; 7 8 import com.sun.tools.sjavac.comp.dependencies.PublicApiCollector; 9 10 public class ListDemo2 { 11 public static void main(String[] args) { 12 List list = new ArrayList(); 13 // show(list); 14 15 list.add("abc1"); 16 list.add("abc2"); 17 list.add("abc3"); 18 19 ListIterator it = list.listIterator();//获取列表迭代器对象 20 //它可以实现在迭代过程中完成对元素的增删改查。 21 //注意:只有list集合具备该迭代功能 22 23 while (it.hasNext()) { 24 Object obj = it.next(); 25 if (obj.equals("abc2")) { 26 it.add("abc9"); 27 } 28 } 29 // System.out.println("next:"+it.hasNext()); 30 // System.out.println("hasPrevious:"+it.hasPrevious()); 31 32 while (it.hasPrevious()) { 33 System.out.println("previous:"+it.previous());//逆序遍历 34 } 35 System.out.println("list:"+list); 36 37 /* 38 * Iterator it = list.iterator();//此时迭代器知道有三个元素 while (it.hasNext()) { Object 39 * obj = it.next();//java.util.ConcurrentModificationException 40 * //在迭代过程中,不要使用集合操作元素,容易操作异常,(并发修改) 41 * //可以使用Iterator接口的子接口ListIterator来完成迭代中对元素进行更多的操作 if (obj.equals("abc2")) { 42 * list.add("abc9");// }else { System.out.println("next:"+obj); } 43 * 44 * } System.out.println(list); 45 */ 46 47 48 49 50 51 } 52 53 private static void show(List list) { 54 // TODO Auto-generated method stub 55 list.add("abc1"); 56 list.add("abc2"); 57 list.add("abc3"); 58 list.add("abc4"); 59 60 Iterator it = list.iterator(); 61 while (it.hasNext()) { 62 System.out.println("next:"+it.next()); 63 } 64 //list特有的取出元素方式之一,set不具备,set只有iterator 65 for (int i = 0; i < list.size(); i++) { 66 System.out.println("get:"+list.get(i)); 67 } 68 69 70 } 71 }