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] } }
ArrayList迭代器的正向遍历和逆向遍历
该代码示例展示了如何使用Java中的ArrayList和ListIterator进行遍历。在迭代过程中尝试添加元素时,会出现并发修改异常。为了避免这种情况,代码使用ListIterator的hasPrevious()和previous()方法进行逆向遍历,并在完成后显示了更新后的列表。
摘要由CSDN通过智能技术生成