Trong Java 9, stream () phương pháp đã được thêm vào Tùy chọn để cải thiện chức năng của nó. Luồng () có thể được sử dụng để chuyển đổi Luồng các phần tử tùy chọn thành Luồng các phần tử giá trị hiện tại. Nếu Tùy chọn chứa một giá trị, sau đó trả về một Luồng chứa giá trị. Nếu không, nó trả về trống luồng .
Cú pháp
public Stream<T> stream()
Ví dụ
import java.util.Arrays; import java.util.List; import java.util.Optional; import java.util.stream.Collectors; import java.util.stream.Stream; public class StreamMethodTest { public static void main(String[] args) { List<Optional<String>> list = Arrays.asList( Optional.empty(), Optional.of("TutorialsPoint"), Optional.empty(), Optional.of("Tutorix")); // If optional is non-empty, get the value in stream, otherwise return empty List<String> filteredListJava8 = list.stream() .flatMap(o -> o.isPresent() ? Stream.of(o.get()) : Stream.empty()) .collect(Collectors.toList()); // Optional::stream method can return a stream of either one or zero element if data is present or not. List<String> filteredListJava9 = list.stream() .flatMap(Optional::stream) .collect(Collectors.toList()); System.out.println(filteredListJava8); System.out.println(filteredListJava9); } }
Đầu ra
[TutorialsPoint, Tutorix] [TutorialsPoint, Tutorix]