iterate()
方法用于创建以单个元素(种子)开始的流,随后的元素通过连续应用一元运算符产生。
结果是无限流。
要终止流,可以使用限制或者其他一些短路函数,例如“findFirst”或者“findAny”。
Java 8 中的 iterate
方法具有以下签名:
static<T> Stream<T> iterate(final T seed, final UnaryOperator<T> f)
在 Java 9 中,iterate
的新重载版本将 Predicate 作为第二个参数:
static<T> Stream<T> iterate(T seed, Predicate hasNext, UnaryOperator<T> next)
在 java 8 中和 在java 9中使用 iterate
方法的区别:
Java 8 中的迭代方法
List<Integer> numbers = Stream.iterate(1, i -> i+1) .limit(10) .collect(Collectors.toList()); System.out.println(numbers); Output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Java 9 中的迭代方法
List<Integer> numbers = Stream.iterate(1, i -> i <= 10 ,i -> i+1) .collect(Collectors.toList()); System.out.println(numbers); Output: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
在上面的示例中,第一个流是 Java 8 使用带限制迭代的方式。
第二个使用 Predicate 作为第二个参数。
日期:2020-09-17 00:10:05 来源:oir作者:oir