Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 转换为具有可预测顺序的贴图_Java_Dictionary_Java 8_Java Stream_Collect - Fatal编程技术网

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我不应该提供合并功能。我有唯一的名称,这就是为什么我说在合并函数中抛出一个异常。