Назад к вопросам
Junior — Middle
90
Можно ли использовать метод collect для преобразования Stream в карту (Map)?
Ответ от нейросети
sobes.tech AI
Да, метод collect в Stream API Java можно использовать для преобразования потока в карту (Map). Для этого применяется коллектор Collectors.toMap(), который принимает функции для ключа и значения.
Пример:
import java.util.*;
import java.util.stream.*;
public class Example {
public static void main(String[] args) {
List<String> list = Arrays.asList("apple", "banana", "cherry");
Map<String, Integer> map = list.stream()
.collect(Collectors.toMap(
s -> s, // ключ — сама строка
s -> s.length() // значение — длина строки
));
System.out.println(map); // {apple=5, banana=6, cherry=6}
}
}
Важно, чтобы ключи были уникальными, иначе будет выброшено исключение. Если ключи могут повторяться, нужно использовать версию toMap с третьим параметром — функцией объединения.