目录
一、Iterator 的基本概念
在 Java 中,Iterator 是一个接口,它提供了一种遍历集合中元素的标准方式。Iterator 接口定义了两个核心方法:
hasNext():返回一个布尔值,表示集合中是否还有更多元素可迭代。next():返回集合中的下一个元素。
通过这两个方法,我们可以安全地遍历集合中的元素,而无需关心集合的具体实现细节。
二、Iterator 的使用场景
Iterator 通常用于遍历 Collection 接口的实现类,如 ArrayList、LinkedList、HashSet 等。以下是使用 Iterator 的常见场景:
- 遍历集合元素:当需要逐个处理集合中的元素时,
Iterator提供了统一的操作方式。 - 在遍历过程中修改集合:与传统的
for循环相比,Iterator允许在遍历过程中安全地移除元素。
三、Iterator 的基本用法
1. 遍历集合
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class IteratorExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Alice");
list.add("Bob");
list.add("Charlie");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String name = iterator.next();
System.out.println(name);
}
}
}
2. 在遍历过程中移除元素
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class IteratorRemoveExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Alice");
list.add("Bob");
list.add("Charlie");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String name = iterator.next();
if (name.equals("Bob")) {
iterator.remove(); // 安全地移除元素
}
}
System.out.println(list); // 输出:[Alice, Charlie]
}
}
四、ListIterator 的使用
ListIterator 是 Iterator 的子接口,专门用于遍历 List 类型的集合。它提供了更多的功能,如双向遍历和元素替换。
1. 双向遍历
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIteratorExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Alice");
list.add("Bob");
list.add("Charlie");
ListIterator<String> listIterator = list.listIterator();
while (listIterator.hasNext()) {
System.out.println(listIterator.next()); // 正向遍历
}
while (listIterator.hasPrevious()) {
System.out.println(listIterator.previous()); // 反向遍历
}
}
}
2. 元素替换
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
public class ListIteratorSetExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Alice");
list.add("Bob");
list.add("Charlie");
ListIterator<String> listIterator = list.listIterator();
while (listIterator.hasNext()) {
String name = listIterator.next();
if (name.equals("Bob")) {
listIterator.set("Brian"); // 替换元素
}
}
System.out.println(list); // 输出:[Alice, Brian, Charlie]
}
}
五、总结
Iterator 是 Java 中用于遍历集合的重要工具,它提供了简单而统一的接口来访问集合中的元素。通过 Iterator,我们可以在遍历过程中安全地移除元素,并且 ListIterator 还支持双向遍历和元素替换等高级操作。掌握 Iterator 的使用方法,可以让我们更高效地处理集合数据,提升代码的可读性和可维护性。
2万+

被折叠的 条评论
为什么被折叠?



