Класс Collector
Класс Collector - это интерфейс из пакета
java.util.stream, который описывает
процедуру сворачивания (редукции) элементов
потока в итоговый результат. Объекты этого
типа передаются в терминальный метод
collect для выполнения мутабельной
редукции. Collector содержит четыре ключевые
функции: supplier (создает новый контейнер
результата), accumulator (добавляет элемент
в контейнер), combiner (объединяет два
контейнера при параллельной обработке) и
finisher (выполняет финальное преобразование
контейнера). Готовые реализации этого
интерфейса собраны в утилитном классе
Collectors.
Синтаксис
Collector<T, A, R>
Где T - тип элементов потока,
A - тип промежуточного контейнера,
R - тип итогового результата.
Пример
Давайте соберем элементы списка в новую
коллекцию, используя стандартный коллектор
toList:
import java.util.List;
import java.util.stream.Collectors;
public class Main
{
public static void main(String[] args)
{
List<String> list = List.of("a", "b", "c", "d", "e");
List<String> res = list.stream()
.collect(Collectors.toList());
System.out.println(res);
}
}
Результат выполнения кода:
[a, b, c, d, e]
Пример
Давайте соберем элементы в множество,
используя коллектор toSet:
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class Main
{
public static void main(String[] args)
{
List<Integer> list = List.of(1, 2, 3, 4, 5, 2, 3);
Set<Integer> res = list.stream()
.collect(Collectors.toSet());
System.out.println(res);
}
}
Результат выполнения кода:
[1, 2, 3, 4, 5]
Пример
Давайте объединим строки в одну, используя
коллектор joining:
import java.util.List;
import java.util.stream.Collectors;
public class Main
{
public static void main(String[] args)
{
List<String> list = List.of("a", "b", "c", "d", "e");
String res = list.stream()
.collect(Collectors.joining("-"));
System.out.println(res);
}
}
Результат выполнения кода:
"a-b-c-d-e"
Смотрите также
-
класс
Collectors,
который содержит готовые реализации коллекторов -
метод
toList,
который собирает элементы в список -
метод
toSet,
который собирает элементы в множество -
метод
joining,
который объединяет строки в одну