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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。