Java Stream iterate(T,Predicate,UnaryOperator)方法及示例

Java Stream iterate(T,Predicate,UnaryOperator)方法及示例

iterate(T, java.util.function.Predicate , java.util.function.UnaryOperator) 方法允许我们对流元素进行迭代,直到指定条件。该方法返回一个连续的有序流,该流由给定的next函数迭代应用于初始元素产生,条件是满足作为参数传递的hasNext谓词。一旦hasNext谓词返回错误,流就会终止。

如果传递的谓词在种子值上不成立,这个方法返回的结果序列可能是空的。否则,第一个元素将是提供的种子值,下一个元素将是对种子值应用下一个函数的结果,如此反复,直到hasNext谓词表明流应该终止。

语法

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

参数: 该方法接受三个参数。

  • seed : 是初始元素。
  • hasNext :这是一个应用于元素的谓词,以确定流必须在什么时候终止,以及
  • next :这是一个应用于前一个元素的函数,产生一个新的元素。

返回值: 该方法返回一个新的连续的流。

下面的程序说明了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控制台的输出如下。

输出:

Java中的流iterate方法及示例

程序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中的流iterate方法及示例

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程