Iterator 与 ListIterator:Java 集合框架中的遍历器比较
在Java集合框架中,Iterator
和ListIterator
都用于遍历集合元素,但它们有所不同。
Iterator
接口提供了遍历任何集合的统一方式,可以正向遍历集合,但只能读取集合元素,不能修改。
ListIterator
是Iterator
的子接口,专门用于遍历List
集合,它可以正向遍历也可以反向遍历,并且可以修改List
集合元素。
以下是使用Iterator
和ListIterator
的简单示例:
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
public class IteratorVsListIterator {
public static void main(String[] args) {
// 创建一个List集合
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
// 使用Iterator遍历List
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println("Iterator: " + element);
}
// 使用ListIterator遍历List
ListIterator<String> listIterator = list.listIterator();
while (listIterator.hasNext()) {
String nextElement = listIterator.next();
System.out.println("ListIterator (正向): " + nextElement);
}
// 使用ListIterator反向遍历List
while (listIterator.hasPrevious()) {
String previousElement = listIterator.previous();
System.out.println("ListIterator (反向): " + previousElement);
}
// ListIterator可以修改元素
listIterator.set("D"); // 用set()方法修改最近一次访问的元素
System.out.println(list); // 输出修改后的List:[D, B, C]
}
}
在这个例子中,我们创建了一个ArrayList
并用它来演示如何使用Iterator
和ListIterator
。Iterator
只能正向遍历,而ListIterator
既可以正向也可以反向遍历,并且可以修改元素。
评论已关闭