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的控製台上打印的輸出如下所示。
輸出:
相關用法
- Java Stream.max()用法及代碼示例
- Java Stream min()用法及代碼示例
- Java Stream takeWhile()用法及代碼示例
- Java Stream noneMatch()用法及代碼示例
- Java Stream ofNullable(T)用法及代碼示例
- Java Stream count()用法及代碼示例
- Java OptionalDouble stream()用法及代碼示例
- Java Stream generate()用法及代碼示例
- Java Stream dropWhile()用法及代碼示例
- Java OptionalInt stream()用法及代碼示例
- Java Stream skip()用法及代碼示例
- Java BitSet stream()用法及代碼示例
- Java Stream forEach()用法及代碼示例
- Java Stream forEachOrdered()用法及代碼示例
- Java Optional stream()用法及代碼示例
注:本文由純淨天空篩選整理自AmanSingh2210大神的英文原創作品 Stream iterate(T,Predicate,UnaryOperator) method in Java with examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。