Java IntStream迭代与生成何时使用什么?

2022-09-01 18:53:20

它似乎只是一个轻量级的有序版本。是真的吗?如果不是,核心区别是什么?IntStream.iterateIntStream.generate


答案 1

请注意它们的签名有何不同:

  • generate取 一个 ,这意味着你应该生成整数而不被赋予任何东西。示例用法包括创建相同整数的常量流,创建随机整数流。请注意,流中的每个元素都不依赖于前一个元素。IntSupplier

  • iterate采用 a 和 a,这意味着您应该基于前一个元素生成每个元素。例如,这对于创建归纳定义的序列非常有用。在这种情况下,每个元素都应该依赖于前一个元素。seedIntUnaryOperator


答案 2
  1. IntStream.iterate另一方面,返回有序的 IntStream 返回无序的 IntStream,这有助于加快并行流管道的速度。IntStream.generate

  2. IntStream.generate首选生成Javadoc中指定的随机或常量值,我猜最有可能是返回的流的特征。


推荐