1. 程式人生 > >JDK8: java.lang.IllegalStateException: Duplicate key 1

JDK8: java.lang.IllegalStateException: Duplicate key 1

今天遇到一個問題,是關於Map的轉化錯誤

Map<String, Integer> map = majorList.stream().collect(Collectors.toMap(Major::getName, Major::getId));

之前是使用這種方式進行List轉換為Mapper的,然後今天忽然報錯

發現是因為相同key的時候,Map新建key-Value會失敗

就改為

Map<String, Integer> map = majorList.stream().collect( Collectors.toMap(Major::getName, Major::getId, (s, a) -> s + a));
map.entrySet().stream().forEach(e -> System.out.println(e.getKey() + " = " + e.getValue()));

出現相同的key的時候,value會自動增加