import java.util.ArrayList; import java.util.List; import java.util.ListIterator; /* 迭代 listIterator() ListIterator特有的方法: 添加: hasPrevious() 判断是否存在上一个元素。 previous() 当前指针先向上移动一个单位,然后再取出当前指针指向的元素。 next(); 先取出当前指针指向的元素,然后指针向下移动一个单位。 --------------------------- add(E e) 把当前有元素插入到当前指针指向的位置上。 set(E e) 替换迭代器最后一次返回的元素。 */ public class Demo3 { public static void main(String[] args) { List list = new ArrayList(); list.add("狗娃"); list.add("狗剩"); list.add("铁蛋"); list.add("美美"); ListIterator it = list.listIterator(); //返回的是一个List接口中特有的迭代器 /*System.out.println("有上一个元素吗?"+ it.hasPrevious()); System.out.println("获取上一个元素:"+it.previous()); it.next(); System.out.println("获取上一个元素:"+ it.previous()); while(it.hasNext()){ it.next(); } while(it.hasPrevious()){ System.out.println("元素:"+ it.previous()); } it.next(); it.next(); it.add("张三"); */ it.next(); it.next(); it.set("张三"); System.out.println("集合的元素:"+ list); } }
import java.util.ArrayList; import java.util.List; import java.util.ListIterator; /* 迭代器在变量元素的时候要注意事项: 在迭代器迭代元素 的过程中,不允许使用集合对象改变集合中的元素 个数,如果需要添加或者删除只能使用迭代器的方法进行操作。 如果使用过了集合对象改变集合中元素个数那么就会出现ConcurrentModificationException异常。 迭代元素 的过程中: 迭代器创建到使用结束的时间。 */ public class Demo5 { public static void main(String[] args) { List list = new ArrayList(); list.add("张三"); list.add("李四"); list.add("王五"); ListIterator it = list.listIterator(); //获取到迭代器 /* while(it.hasNext()){ System.out.print(it.next()+","); //it.add("aa"); // 把元素添加到当前指针指向位置 list.add("aa"); // add方法是把元素添加到集合的末尾处的。 // list.remove("张三"); }*/ list.add("aa"); it.next(); System.out.println(" 集合的元素:"+ list); } }