Встречается на 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}

Важные нюансы:

  1. Ключи должны быть уникальными - иначе будет IllegalStateException
  2. Для обработки дубликатов можно передать функцию слияния:
java
Collectors.toMap(k -> k, v -> v, (oldVal, newVal) -> oldVal)
  1. Можно указать конкретную реализацию Map:
java
Collectors.toMap(..., TreeMap::new)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы