Module java.base
Package java.util

Interface PrimitiveIterator<T,T_CONS>

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

public interface PrimitiveIterator<T,T_CONS> extends Iterator<T>
用于Iterator的原始专用类型的基本类型。为intlongdouble值提供了专门的子类型。

专门的子类型默认实现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
  • Method Details

    • forEachRemaining

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

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

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

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