Trong Java 8, iterate () phương thức của API luồng lấy hạt giống và đơn nguyên nhà điều hành như các đối số. Khi luồng trở nên vô hạn, nó làm cho nhà phát triển thêm rõ ràng chấm dứt điều kiện bằng cách sử dụng giới hạn, findFirst, findAny, v.v. Trong Java 9, lặp () phương pháp Luồng API đã thêm một đối số mới, một vị ngữ điều đó có điều kiện để phá vỡ luồng.
Cú pháp
static <T> Stream<T> iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> next)
Ví dụ
import java.util.stream.Collectors; import java.util.stream.Stream; import java.util.List; public class StreamIterateMethodTest { public static void main(String args[]) { List<Integer> numbers1 = Stream.iterate(1, i -> i+1) // with two arguments .limit(10) .collect(Collectors.toList()); System.out.println("In Java 8:" + numbers1); List<Integer> numbers2 = Stream.iterate(1, i -> i <= 10, i -> i+1) // with three arguments .collect(Collectors.toList()); System.out.println("In Java 9:" + numbers2); } }
Đầu ra
In Java 8:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] In Java 9:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]