当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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