Map<String, Choice> result = choices.stream().collect(Collectors.toMap(Choice::getName, Function.identity()));
Ответ 2
Если ваш ключ НЕ гарантированно уникален для всех элементов в списке, вам следует преобразовать его в Map<String, List<Choice>> вместо a Map<String, Choice>
Map<String, List<Choice>> result = choices.stream().collect(Collectors.groupingBy(Choice::getName));
Ответ 3
Использовать getName() как ключ , а Choice себя как значение map:
Map<String, Choice> result = choices.stream().collect(Collectors.toMap(Choice::getName, c -> c));
Ответ 4
В большинстве перечисленных ответов отсутствует случай, когда в списке есть повторяющиеся элементы. В этом случае их ответ приведет к ошибке IllegalStateException. Обратитесь к приведенному ниже коду , чтобы также обработать дубликаты списка: