迭代器是Java集合框架的核心接口,提供统一的元素访问方式,屏蔽底层集合实现差异。
其核心方法包括:
hasNext():检查是否还有未遍历元素,返回布尔值。
next():获取并返回下一个元素,指针后移。
remove():删除上一次next()返回的元素,需在调用next()后立即使用。
使用步骤与示例
1、获取迭代器:调用集合的iterator()方法(如ArrayList、HashSet)
List<String> list = new ArrayList<>();
list.add("Apple");
Iterator<String> it = list.iterator();
2、遍历元素:使用while循环结合hasNext()和next()。
while (it.hasNext()) {
String element = it.next();
System.out.println(element);
}
3、安全删除元素:在遍历中调用remove()修改集合
while (it.hasNext()) {
if (element.equals("Banana")) {
it.remove(); // 安全删除
}
}
注意事项与高级用法并发修改异常:避免在迭代过程中直接调用集合的add()或remove()方法,应使用迭代器的remove()。
单向性限制:迭代器仅支持单向遍历;ListIterator支持双向遍历(previous()、hasPrevious())和插入元素(add())。
替代方案:Java 5+的增强for循环底层基于迭代器,简化遍历;Java 8的forEachRemaining()支持lambda表达式。
发表评论