Встречается на 2% собеседований по Java
Можно ли Stream преобразовать в Map с помощью collect
Да, можно использовать Collectors.toMap() для преобразования Stream в Map. Пример:
java
List<String> list = Arrays.asList("a", "bb", "ccc");
Map<String, Integer> map = list.stream()
.collect(Collectors.toMap(
s -> s, // ключ - сам элемент
s -> s.length() // значение - длина строки
));
// Результат: {a=1, bb=2, ccc=3}Важные нюансы:
- Ключи должны быть уникальными - иначе будет
IllegalStateException - Для обработки дубликатов можно передать функцию слияния:
java
Collectors.toMap(k -> k, v -> v, (oldVal, newVal) -> oldVal)- Можно указать конкретную реализацию Map:
java
Collectors.toMap(..., TreeMap::new)
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы