Iterator
public interface Iterator<E>
集合上的迭代器。 迭代器在 Java 集合框架中取代了枚举。 迭代器在两个方面不同于枚举:
- 迭代器允许调用者在具有明确定义的语义的迭代期间从底层集合中删除元素。
- 方法名称已得到改进。
此接口是 Java 集合框架的成员。
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
default void | forEachRemaining(Consumer<? super E> action) | 对每个剩余元素执行给定的操作,直到所有元素都已处理或该操作引发异常。 |
boolean | hasNext() | 如果迭代有更多元素,则返回 true。 |
E | next() | 返回迭代中的下一个元素。 |
default void | remove() | 从基础集合中移除此迭代器返回的最后一个元素(可选操作)。 |
方法详情
hasNext
boolean hasNext()
如果迭代有更多元素,则返回 true。 (换句话说,如果 next() 将返回一个元素而不是抛出异常,则返回 true。)
返回:
如果迭代有更多元素,则为 true
next
E next()
返回迭代中的下一个元素。
返回:
迭代中的下一个元素
Throws:
Throw名称 | Throw描述 |
---|---|
NoSuchElementException | 如果迭代没有更多元素 |
remove
default void remove()
从基础集合中移除此迭代器返回的最后一个元素(可选操作)。 每次调用 next() 时只能调用一次此方法。 如果在迭代过程中以除调用此方法之外的任何方式修改了基础集合,则迭代器的行为是未指定的。
Throws:
Throw名称 | Throw描述 |
---|---|
UnsupportedOperationException | 如果此迭代器不支持删除操作 |
IllegalStateException | 如果下一个方法还没有被调用,或者在最后一次调用下一个方法之后已经调用了remove方法 |
forEachRemaining
default void forEachRemaining(Consumer<? super E> action)
对每个剩余元素执行给定的操作,直到所有元素都已处理或该操作引发异常。 如果指定了迭代顺序,则按迭代顺序执行操作。 操作引发的异常将转发给调用者。
参数:
参数名称 | 参数描述 |
---|---|
action | 为每个元素执行的操作 |
Throws:
Throw名称 | Throw描述 |
---|---|
NullPointerException | 如果指定的操作为空 |