Метод 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