【发布时间】:2018-03-29 13:04:38
【问题描述】:
List<String> strings = Arrays.asList("3","55","3");
Map<String,Integer> map = strings
.stream()
.collect(Collectors.toMap(s ->s, s -> s.length()));
返回
java.lang.IllegalStateException: Duplicate key 1
我期望的重复键 3
【问题讨论】:
-
复制到 1.8.0u152。似乎记录了
HashMap$Node的value而不是它的key... -
注意,如果你做
Collectors.toMap(s ->s, s ->4),你会得到java.lang.IllegalStateException: Duplicate key 4,所以看起来它实际上是在抱怨值重复 -
@Mena 并且重复的引用显示“Fix Version/s: 9”-直到 Java 9 才修复。
标签: java java-stream