- 类型参数:
-
T- 此PrimitiveIterator返回的元素类型。该类型必须是原始类型的包装类型,例如Integer用于原始类型int。 -
T_CONS- 原始消费者的类型。该类型必须是Consumer的原始专用类型,例如IntConsumer用于Integer。
- 所有超接口:
-
Iterator<T>
用于
Iterator的原始专用类型的基本类型。为int、long和double值提供了专门的子类型。
专门的子类型默认实现Iterator.next()和Iterator.forEachRemaining(java.util.function.Consumer)将原始值装箱为相应包装类的实例。这种装箱可能抵消使用原始专用类型时获得的任何优势。为避免装箱,应使用相应的基于原始类型的方法。例如,应优先使用PrimitiveIterator.OfInt.nextInt()和PrimitiveIterator.OfInt.forEachRemaining(java.util.function.IntConsumer),而不是PrimitiveIterator.OfInt.next()和PrimitiveIterator.OfInt.forEachRemaining(java.util.function.Consumer)。
使用基于装箱的方法next()和forEachRemaining()迭代原始值,不会影响遇到这些值时的顺序,这些值被转换为装箱值。
- 实现注意:
-
如果布尔系统属性
org.openjdk.java.util.stream.tripwire设置为true,则在操作原始子类型专用化时发生原始值装箱时会报告诊断警告。 - 自Java版本:
- 1.8
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interface专门用于double值的迭代器。static interface专门用于int值的迭代器。static interface专门用于long值的迭代器。 -
Method Summary
Modifier and TypeMethodDescriptionvoidforEachRemaining(T_CONS action) 对每个剩余元素执行给定操作,直到所有元素都已处理完毕或操作引发异常。Methods declared in interface java.util.Iterator
forEachRemaining, hasNext, next, remove
-
Method Details
-
forEachRemaining
对每个剩余元素执行给定操作,直到所有元素都已处理完毕或操作引发异常。如果指定了顺序,则按迭代顺序执行操作。由操作引发的异常将传递给调用者。如果操作以任何方式修改元素源(甚至通过调用
remove方法或Iterator子类型的其他变更器方法),则迭代器的行为是未指定的,除非覆盖类已指定并发修改策略。如果操作引发异常,则迭代器的后续行为是未指定的。
- 参数:
-
action- 要对每个元素执行的操作 - 抛出:
-
NullPointerException- 如果指定的操作为null
-