Java 转换为具有可预测顺序的贴图
我有以下代码:Java 转换为具有可预测顺序的贴图,java,dictionary,java-8,java-stream,collect,Java,Dictionary,Java 8,Java Stream,Collect,我有以下代码: users.stream() .sorted((u1, u2) -> u2.getScore().compareTo(u1.getScore())) .limit(count) .collect(Collectors.toMap((User::getName), (User::getScore))); 结果的内容是正确的,但当我想要获得它时,它会以不可预知的结果输出。我认为这是
users.stream()
.sorted((u1, u2) -> u2.getScore().compareTo(u1.getScore()))
.limit(count)
.collect(Collectors.toMap((User::getName), (User::getScore)));
结果的内容是正确的,但当我想要获得它时,它会以不可预知的结果输出。我认为这是因为在引擎盖下使用了HashMap
有没有办法收集到具有可预测结果的mp?这种方法有效:
return users.stream()
.sorted((u1, u2) -> u2.getScore().compareTo(u1.getScore()))
.limit(count)
.collect(Collectors.toMap((User::getName), (User::getScore), (k, v) -> {
throw new RuntimeException(String.format("Duplicate key %s", k));
},
LinkedHashMap::new));
使用toMapFunction@Alexis我不应该提供合并功能。我有唯一的名称,这就是为什么我说在合并函数中抛出一个异常。