Iterator通过iterator()获取,使用hasNext()和next()遍历元素,可安全删除;其具备fail-fast机制、单向遍历、统一接口等特点,适用于List、Set等集合。

Iterator 是 Java 集合框架中用于遍历集合元素的一个接口,主要用在 List、Set、Queue 等集合类型中。它提供了一种统一的方式来访问集合中的元素,而不需要暴露集合的内部结构。
使用 Iterator 的基本步骤如下:
示例代码:
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String item = it.next();
System.out.println(item);
// 如果需要,可以删除当前元素
if ("banana".equals(item)) {
it.remove();
}
}
1. 安全性高(支持 fail-fast 机制)
大多数集合的 Iterator 是 fail-fast 的,意味着在迭代过程中如果集合被其他方式修改(如直接调用集合的 remove 或 add),会抛出 ConcurrentModificationException。这有助于及时发现并发修改问题。
2. 单向遍历
Iterator 只能从前往后遍历,不能倒序访问。如果需要反向遍历,可以使用 ListIterator(仅适用于 List)。
3. 支持删除操作
Iterator 的 remove() 方法可以在遍历过程中安全地删除当前元素,避免了边遍历边删除导致的异常。
4. 统一接口
无论底层是 ArrayList、LinkedList 还是 HashSet,都可以用 Iterator 遍历,提高了代码的通用性和可维护性。
5. 延迟加载(惰性计算)
Iterator 是逐步获取元素的,不会一次性加载所有数据,适合处理大数据集合。
调用 next() 之前必须先调用 hasNext(),否则可能抛出 NoSuchElementException。
立即学习“Java免费学习笔记(深入)”;
remove() 方法必须在调用 next() 之后调用,否则会抛出 IllegalStateException。
某些集合(如 Collections.unmodifiableCollection 返回的集合)的 Iterator 不支持 remove 操作,调用会抛出 UnsupportedOperationException。
基本上就这些,Iterator 简单但很实用,是遍历集合时推荐的方式之一。以上就是java 中Iterator 怎么使用?有什么特点?的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号