Sử dụng phương thức flatMap() của đối tượng Stream trong Java

Bài viết được sự cho phép của tác giả Nguyễn Hữu Khanh
Khi làm việc với đối tượng Stream trong Java, đôi khi chúng ta sẽ có những đối tượng Stream của những đối tượng List, Set hay là Array. Ví dụ như:
List<String> students1 = new ArrayList<>(); students1.add("Khanh"); List<String> students2 = new ArrayList<>(); students2.add("Thanh"); students2.add("Dung"); List<List<String>> students = Arrays.asList(students1, students2); Stream<List<String>> stream = students.stream();
Ở đây, chúng ta có đối tượng List chứa những đối tượng List của những đối tượng String và khi convert đối tượng này qua đối tượng Stream, chúng ta có đối tượng Stream chứa đối tượng List của những đối tượng String.
Khi đó, nếu chúng ta cần thao tác trên đối tượng Stream này ví dụ như filter chẳng hạn thì chúng ta không thể làm được. Ví dụ như:
Xem thêm nhiều việc làm Java hấp dẫn trên Station D
Để giải quyết vấn đề này, chúng ta có thể sử dụng phương thức flatMap() trong đối tượng Stream trước khi chúng ta cần thao tác điều gì đó trên đối tượng Stream. Sử dụng phương thức flatMap() chúng ta có thể chuyển đổi đối tượng Stream của những đối tượng List, Set or Array thành đối tượng Stream của những đối tượng đơn giản hơn.
Ví dụ như:
List<String> students1 = new ArrayList<>(); students1.add("Khanh"); List<String> students2 = new ArrayList<>(); students2.add("Thanh"); students2.add("Dung"); List<List<String>> students = Arrays.asList(students1, students2); Stream<List<String>> stream = students.stream(); Stream<String> flatMap = stream.flatMap(l -> l.stream());
Bây giờ, chúng ta có thể sử dụng phương thức flapMap() để giải quyết vấn đề trên:
Bài viết gốc được đăng tải tại huongdanjava.com
Xem thêm:
- Javascript sự khác biệt map và weakmap. What make a different?
- Streaming Media với Nginx và nginx-rtmp module
- Hiểu hơn về cách hoạt động của JavaScript Engine
Xem thêm Việc làm IT hấp dẫn trên Station D
Bạn có thể quan tâm
- Vừa đủ để đi (go)(Công Nghệ)
- Thị trường EdTech Vietnam- Nhiều tiềm năng nhưng còn bị bỏ ngỏ tại Việt Nam(Chuyện IT)
- Xây dựng hệ thống referral trong Laravel(Công Nghệ)