Найти тему
DEBAGanov

Java 1128. Для чего нужен метод collect() в стримах?

Метод collect() в Stream API используется для преобразования элементов потока в какую-то коллекцию или другой объект, например, массив или строку. Метод collect() принимает в себя объект класса Collector, который описывает, как элементы потока должны быть собраны в коллекцию. Класс Collector предоставляет ряд фабричных методов, таких как toList(), toSet(), toMap() и многие другие, которые позволяют создать различные типы коллекций.

Пример использования метода collect():

List<String> resultList = names.stream()
.filter(s -> s.startsWith("A"))
.collect(Collectors.toList());

В этом примере мы фильтруем имена, начинающиеся с буквы "A", из потока и используем метод collect() для сбора отфильтрованных элементов в новый список resultList.

Также метод collect() может использоваться для сбора элементов потока в объект другого типа. Например, вы можете использовать метод collect() для сбора элементов потока в строку, используя фабричный метод Collectors.joining():

String resultString = names.stream()
.collect(Collectors.joining(", "));

В этом примере мы используем метод collect() для сбора всех строк из потока в одну строку с разделителем ", ".

Например, если нам нужно преобразовать список строк в Set строк, мы можем использовать метод collect() следующим образом:

List<String> list = Arrays.asList("a", "b", "c");
Set<String> set = list.stream().collect(Collectors.toSet());

Метод collect() также может быть использован для агрегации элементов стрима в один объект. Например, мы можем использовать его для нахождения суммы элементов числового стрима:

IntStream stream = IntStream.of(1, 2, 3, 4, 5);
int sum = stream.collect(Collectors.summingInt(i -> i));

1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions

Tелеграмм канал: https://t.me/DEBAGanov

Мое резюме: https://github.com/DEBAGanov