hasNext()用于判断迭代器是否还有未访问元素,返回true或false,不移动游标;使用前必须先调用以避免NoSuchElementException,典型用法是while(it.hasNext())配合it.next()。

用 hasNext() 方法判断。
hasNext() 的作用和特点
该方法返回一个 boolean 值:
– 如果集合中还有未被访问的元素,返回 true;
– 如果已遍历完所有元素,返回 false。
它只做判断,不移动内部游标,也不取元素,是安全的“试探性”调用。
使用时的关键注意事项
- 必须在调用 next() 之前检查 hasNext(),否则可能抛出 NoSuchElementException
- 初始状态下,迭代器游标位于第一个元素之前,此时 hasNext() 返回 true(只要集合非空)
- 遍历到最后一个元素并调用过 next() 后,再次调用 hasNext() 就会返回 false
典型使用场景示例
标准 while 循环写法:
Iterator<String> it = list.iterator();
while (it.hasNext()) {
String item = it.next(); // 此时 guaranteed 安全
System.out.println(item);
}
这个结构确保每次调用 next() 前都有明确的 hasNext() 护航,避免异常。
立即学习“Java免费学习笔记(深入)”;


















