Java 8 List<V> into Map<K, V> Java 8 List<V> into Map<K, V> java java

Java 8 List<V> into Map<K, V>


Based on Collectors documentation it's as simple as:

Map<String, Choice> result =    choices.stream().collect(Collectors.toMap(Choice::getName,                                              Function.identity()));


If your key is NOT guaranteed to be unique for all elements in the list, you should convert it to a Map<String, List<Choice>> instead of a Map<String, Choice>

Map<String, List<Choice>> result = choices.stream().collect(Collectors.groupingBy(Choice::getName));


Use getName() as the key and Choice itself as the value of the map:

Map<String, Choice> result =    choices.stream().collect(Collectors.toMap(Choice::getName, c -> c));