The collect() เมธอดใน Stream API รวบรวมวัตถุทั้งหมดจากวัตถุสตรีมและเก็บไว้ในประเภทของคอลเลกชัน . ผู้ใช้ต้องระบุประเภทของคอลเลกชันที่สามารถจัดเก็บผลลัพธ์ได้ เราระบุประเภทคอลเลกชันโดยใช้ Collector Enum . มีหลายประเภทและสามารถแสดงการทำงานที่แตกต่างกันได้ใน Collector Enum แต่โดยส่วนใหญ่แล้ว เราสามารถใช้ Collectors.toList() , Collectors.toSet() และ Collectors.toMap() .
ไวยากรณ์
<R, A> R collect(Collector<? super T,A,R> collector)
ตัวอย่าง
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); } }
ผลลัพธ์
[a, b, c, d] [e, f, g, h, i] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]