Java 9 中 iterate() 方法對 Stream API 的重要性?\n


在 Java 8 中,Stream APIiterate() 方法把 種子 一元 運算子 作為引數。由於流是無限的,開發人員必須使用 limit、findFirst、findAny 等等,新增 顯式 終止 條件 。在 Java 9 中,Stream API iterate() 方法添加了新的引數,即一個 謂語 ,它使用條件來中斷流。

語法

static <T> Stream<T> iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> next)

示例

import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.List;
public class StreamIterateMethodTest {
   public static void main(String args[]) {
      List<Integer> numbers1 = Stream.iterate(1, i -> i+1)   // with two arguments
            .limit(10)
            .collect(Collectors.toList());
      System.out.println("In Java 8:" + numbers1);
      List<Integer> numbers2 = Stream.iterate(1, i -> i <= 10, i -> i+1)    // with three arguments
            .collect(Collectors.toList());
      System.out.println("In Java 9:" + numbers2);
   }
}

輸出

In Java 8:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
In Java 9:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

更新於: 21-Feb-2020

372 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

開始
廣告