collect () trong API luồng thu thập tất cả các đối tượng từ một đối tượng luồng và được lưu trữ trong loại bộ sưu tập . Người dùng phải cung cấp loại tập hợp mà kết quả có thể được lưu trữ. Chúng tôi chỉ định loại bộ sưu tập bằng cách sử dụng Enum bộ sưu tập . Có nhiều loại khác nhau và các hoạt động khác nhau có thể xuất hiện trong Danh sách người thu thập , nhưng hầu hết thời gian chúng tôi có thể sử dụng Collectors.toList () , Collectors.toSet () và Collectors.toMap () .
Cú pháp
<R, A> R collect(Collector<? super T,A,R> collector)
Ví dụ
import java.util.*; import java.util.stream.*; public class StreamCollectMethodTest { public static void main(String args[]) { List<String> list = List.of("a", "b", "c", "d", "e", "f", "g", "h", "i"); List<String> subset1 = list.stream() .takeWhile(s -> !s.equals("e")) .collect(Collectors.toList()); System.out.println(subset1); List<String> subset2 = list.stream() .dropWhile(s -> !s.equals("e")) .collect(Collectors.toList()); System.out.println(subset2); List<Integer> numbers = Stream.iterate(1, i -> i <= 10, i -> i+1) .collect(Collectors.toList()); System.out.println(numbers); } }
Đầu ra
[a, b, c, d] [e, f, g, h, i] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]