Junior — Middle
È possibile usare il metodo collect per trasformare uno Stream in una mappa (Map)?
sobes.tech AI
Risposta dell'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 с третьим параметром — функцией объединения.