Java 中的 Collector 是用于將 Stream 中的元素收集到一個數據結構中的工具。它們可以將 Stream 中的元素收集到 List、Set、Map 等數據結構中,并且可以對元素進行操作或對結果進行匯總。
Collector 接口中定義了幾個方法,其中最重要的是三個方法:
當我們使用 Collector 收集器時,通常會使用 Collectors 類中提供的靜態工廠方法來創建 Collector。這些靜態方法包括 toList()、toSet()、toMap() 等,用于將元素收集到不同的數據結構中。
以下是一個使用 Collector 的簡單示例:
List<String> list = Arrays.asList("apple", "banana", "cherry");
List<String> collectedList = list.stream()
.filter(s -> s.startsWith("a"))
.collect(Collectors.toList());
System.out.println(collectedList); // 輸出:[apple]
在這個例子中,我們通過 filter() 方法篩選出以字母"a"開頭的元素,然后使用 collect() 方法將篩選后的元素收集到一個 List 中。最終輸出的結果是包含"apple"的 List。