Trong Java 8, phương thức iterate() đã được giới thiệu và nó chỉ có 2 tham số và sẽ giúp chúng ta tạo 1 đối tượng Stream với các phần tử vô hạn.
Nội dung:
1 |
static<T> Stream<T> iterate(final T seed, final UnaryOperator<T> f) |
Ví dụ:
1 2 3 4 5 6 7 8 9 10 |
package com.huongdanjava.javastream; import java.util.stream.Stream; public class Example { public static void main(String[] args) { Stream.iterate(1, i -> i + 1).forEach(System.out::println); } } |
Khi chạy ví dụ trên, các bạn sẽ thấy một đối tượng Stream chứa vô tận các số bắt đầu từ 1.
Với Java 9 thì phương thức iterate() đã có 1 cải tiến bằng cách thêm 1 tham số nữa, interface Predicate, giúp chúng ta có thể stop các số vô tận này dựa vào điều kiện chúng ta định nghĩa bằng interface Predicate.
Nội dung:
1 |
static<T> Stream<T> iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> next) |
Ví dụ:
1 2 3 4 5 6 7 8 9 10 |
package com.huongdanjava.javastream; import java.util.stream.Stream; public class Example { public static void main(String[] args) { Stream.iterate(1, i -> i < 10, i -> i + 1).forEach(System.out::println); } } |
Kết quả: