- 类型参数:
T- 此 PrimitiveIterator 返回的元素类型。该类型必须是原始类型的包装类型,例如原始int类型的Integer。T_CONS- 原始消费者的类型。该类型必须是ConsumerforT的原始特化,例如IntConsumerforInteger。
- 所有父级接口:
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,则在对原始子类型特化进行操作时发生原始值装箱时会报告诊断警告。 - 自从:
- 1.8
-
内部类总结
内部类修饰符和类型接口描述static interface专门用于double值的迭代器。static interface专门用于int值的迭代器。static interface专门用于long值的迭代器。 -
方法总结
在接口 java.util.Iterator 中声明的方法
forEachRemaining, hasNext, next, remove
-
方法详情
-
forEachRemaining
对每个剩余元素执行给定的操作,直到处理完所有元素或操作引发异常。如果指定了迭代顺序,则将按迭代顺序执行操作。操作抛出的异常被转发给调用者。如果操作以任何方式修改元素源(即使通过调用
remove方法或Iterator子类型的其他增变器方法),则迭代器的行为是未指定的,除非重写类已指定并发修改策略。如果操作抛出异常,迭代器的后续行为是未指定的。
- 参数:
action- 对每个元素执行的操作- 抛出:
NullPointerException- 如果指定的操作为空
-