當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Stream iterate(T,Predicate,UnaryOperator)用法及代碼示例


iterate(T,java.util.function.Predicate,java.util.function.UnaryOperator)方法允許我們迭代流元素直到指定條件。此方法將滿足條件的hasNext謂詞作為參數傳遞,將通過將給定next函數的迭代應用程序生成的順序有序Stream返回到初始元素。當hasNext謂詞返回false時,流終止。

如果傳遞的謂詞不保留種子值,則此方法返回的結果序列可能為空。否則,第一個元素將是提供的種子值,下一個元素將是將next函數應用於種子值的結果,依此類推,直到hasNext謂詞指示流應終止。

用法:


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

參數:此方法接受三個參數:

  • seed:這是初始元素,
  • hasNext:謂詞適用於確定流何時必須終止的元素,以及
  • next:這是應用於上一個元素以產生新元素的函數。

返回值:此方法返回一個新的順序Stream。

以下示例程序旨在說明iterate(T,java.util.function.Predicate,java.util.function.UnaryOperator)方法:

程序1:

// Java program to demonstrate 
// Stream.iterate method 
  
import java.util.stream.Stream; 
public class GFG { 
  
    public static void main(String[] args) 
    { 
  
        // create a stream using iterate 
        Stream<Integer> stream 
            = Stream.iterate(1, 
                             i -> i <= 20, i -> i * 2); 
  
        // print Values 
        stream.forEach(System.out::println); 
    } 
}

IDE的控製台上打印的輸出如下所示。
輸出:

程序2:

// Java program to demonstrate 
// Stream.iterate method 
  
import java.util.stream.Stream; 
public class GFG { 
  
    public static void main(String[] args) 
    { 
  
        // create a stream using iterate 
        Stream<Double> stream 
            = Stream.iterate(2.0, 
                             decimal -> decimal > 0.25, decimal -> decimal / 2); 
  
        // print Values 
        stream.forEach(System.out::println); 
    } 
}

IDE的控製台上打印的輸出如下所示。
輸出:

參考文獻: https://docs.oracle.com/javase/10/docs/api/java/util/stream/Stream.html#iterate(T, java.util.function.Predicate, java.util.function.UnaryOperator)



相關用法


注:本文由純淨天空篩選整理自AmanSingh2210大神的英文原創作品 Stream iterate(T,Predicate,UnaryOperator) method in Java with examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。