双向遍历集合----ListIterator接口
若想实现可以从前到后遍历集合和从后向前遍历集合的操作,可以使用ListIterator接口。
ListIterator接口中的主要方法
案例演示
进行双向迭代输出集合中的信息
package chapter_thirteen;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIteratorDemo01 {
public static void main(String[] args) {
List<String> list = new ArrayList<String>(); //通过ArrayList类实例化List接口
list.add("Hello"); //向集合中添加信息
list.add("Chian");
list.add("World");
ListIterator<String> listIterator = list.listIterator(); //通过List接口中的方法获取双向迭代器
System.out.println("从前向后输出集合中的所有元素:"); //顺序输出所有元素
while (listIterator.hasNext()){
System.out.print(listIterator.next() + "、");
}
System.out.println("\n从后向前输出集合中的所有元素:"); //逆序输出所有元素,注意两者输出顺序不能颠倒,必须先顺序再逆序
while (listIterator.hasPrevious()){
System.out.print(listIterator.previous() + "、");
}
}
}
运行结果
从前向后输出集合中的所有元素:
Hello、Chian、World、
从后向前输出集合中的所有元素:
World、Chian、Hello、
增加及替换元素
package chapter_thirteen;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIteratorDemo02 {
public static void main(String[] args) {
List<String> list = new ArrayList<String>(); //通过ArrayList类实例化List接口集合对象
list.add("Hello"); //为集合对象添加字符串信息
list.add("Chian");
list.add("World");
ListIterator<String> listIterator = list.listIterator(); //获取List接口特有的双向迭代器对象
System.out.println("由前向后输出集合中的信息:");
while (listIterator.hasNext()){ //顺序输出迭代器中的所有内容
String temp = listIterator.next(); //取出迭代器中的内容
System.out.print(temp + "、");
listIterator.set(temp + "(copyright@Mr.Gao)"); //替换元素,将新的内容添加到迭代器中,替换掉之前的
}
System.out.println("\n由后向前输出集合中的信息:");
while (listIterator.hasPrevious()){ //由后向前输出集合中的所有信息
System.out.print(listIterator.previous() + "、");
}
}
}
运行结果
由前向后输出集合中的信息:
Hello、Chian、World、
由后向前输出集合中的信息:
World(copyright@Mr.Gao)、Chian(copyright@Mr.Gao)、Hello(copyright@Mr.Gao)、
小知识
ListIterator接口与Iterator接口不同,即ListIterator接口只能通过List接口实例化,即只能输出List接口中的内容。