iterator 是 java 集合框架中用于统一遍历集合元素的核心接口,提供 hasnext()、next() 和 remove() 三种标准操作,所有 collection 实现类均通过 iterator() 方法返回其私有内部迭代器实现。

Iterator 是 Java 集合框架中用于统一遍历集合元素的核心接口,它不关心集合内部怎么存数据,只提供标准的“有没有下一个”“取下一个”“删当前”这三种操作。
Iterator 接口是干什么的
它是一个行为抽象,定义了对任意 Collection 类型(如 ArrayList、HashSet、LinkedList)进行安全、线性遍历的通用方式。核心就三个方法:
- hasNext():返回 boolean,判断是否还有未访问的元素
- next():返回下一个元素;调用前必须确保 hasNext() 为 true,否则抛 NoSuchElementException
- remove():删除上一次 next() 返回的那个元素(可选操作,部分实现可能不支持)
怎么获取集合的迭代器
所有实现了 Collection 接口的集合类(List、Set、Queue 等)都自带 iterator() 方法,直接调用即可获得对应迭代器对象:
- ArrayList
list = new ArrayList(); Iterator it = list.iterator(); - HashSet
set = new HashSet(); Iterator it = set.iterator(); - HashMap 的键、值、键值对需分别获取:map.keySet().iterator()、map.values().iterator()、map.entrySet().iterator()
为什么不能直接 new Iterator
因为 Iterator 是接口,没有具体实现。JVM 在调用 collection.iterator() 时,会根据实际集合类型自动返回它的私有内部迭代器实现类(比如 ArrayList$Itr),你不需要、也不能手动创建。
一个典型使用流程
先判断,再取值,循环推进:
Iterator<string> it = list.iterator();
while (it.hasNext()) {
String s = it.next();
System.out.println(s);
}</string>
这个 while 循环结构就是 Iterator 最稳妥、最常用的遍历写法。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











