你的位置:首页 > Java教程

[Java教程]【Java学习笔记】Iterator的子接口ListIterator


 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 }