package com.test.Test06; import java.util.ArrayList; import java.util.Iterator; import java.util.ListIterator; public class Test2 { //这是一个main方法,是程序的入口 public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); list.add("aa"); list.add("bb"); list.add("cc"); list.add("dd"); list.add("ee"); //迭代器遍历 // Iterator<String> it = list.iterator(); ListIterator<String> it = list.listIterator(); while (it.hasNext()) { //System.out.println(it.next()); //上面的比较专业的说法就是并发修改异常。正在发生的修改异常。 if("cc".equals(it.next())) { it.add("kk"); } } System.out.println(it.hasNext()); //false System.out.println(it.hasPrevious());//true //逆向遍历 while (it.hasPrevious()) { System.out.println(it.previous()); } /* * ee dd kk cc bb aa * */ //一点一点的往上遍历,一个true,一个false。 System.out.println(it.hasNext()); //true 往上遍历后hasNext就变成了true System.out.println(it.hasPrevious());//false 往上遍历后hasPrevious就变成了false System.out.println(list); //[aa, bb, cc, kk, dd, ee] } }