模块 java.base
 java.util

接口原语迭代器<T,T_CONS>

类型参数:
T - 此 PrimitiveIterator 返回的元素类型。该类型必须是原始类型的包装类型,例如原始 int 类型的 Integer
T_CONS - 原始消费者的类型。该类型必须是 Consumer for T 的原始特化,例如 IntConsumer for Integer
所有父级接口:
Iterator<T>
所有已知的子接口:
PrimitiveIterator.OfDouble , PrimitiveIterator.OfInt , PrimitiveIterator.OfLong

public interface PrimitiveIterator<T,T_CONS> extends 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
  • 方法详情

    • forEachRemaining

      void forEachRemaining(T_CONS  action)
      对每个剩余元素执行给定的操作,直到处理完所有元素或操作引发异常。如果指定了迭代顺序,则将按迭代顺序执行操作。操作抛出的异常被转发给调用者。

      如果操作以任何方式修改元素源(即使通过调用 remove 方法或 Iterator 子类型的其他增变器方法),则迭代器的行为是未指定的,除非重写类已指定并发修改策略。

      如果操作抛出异常,迭代器的后续行为是未指定的。

      参数:
      action - 对每个元素执行的操作
      抛出:
      NullPointerException - 如果指定的操作为空