当前位置: 首页 > 知识库问答 >
问题:

以可预测的顺序转换为地图[重复]

史钊
2023-03-14

我有以下代码:

users.stream()
                .sorted((u1, u2) -> u2.getScore().compareTo(u1.getScore()))
                .limit(count)
                .collect(Collectors.toMap((User::getName), (User::getScore)));

结果的内容是正确的,但当我想要得到它时,它会以不可预测的结果输出。我认为这是因为在引擎盖下使用了HashMap。

有没有办法收集到MP与可预测的结果?

共有1个答案

邬朗
2023-03-14

这是有效的:

           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));
 类似资料:
  • 我有一个Web服务,我想检索树的元素到根节点。我有一个网络流量接口,它在每次调用时返回一个单声道: 让我们假设有一棵树 我想创建以下方法: 这将给我在getNodeChain(5)上一个通量,节点为5,3和1,然后完成。 不幸的是,我不太明白如何按顺序组合Monos,但不阻止它们。使用,我想我需要在每个mono上阻塞,以检查它是否有下一个元素。我发现的其他方法似乎只结合了固定数量的mono,但不是

  • 问题内容: 假设我有以下设置 我们知道返回类型B。 当我做的时候 投射输入然后尝试调用吗? 调用上铸造的结果类型? 我发现很难确定,而且总是在谨慎的情况下打上额外的括号(对于可读性来说,这不是一个坏主意,但现在我很好奇) 尽管我看不到这将如何改变行为,但具体参考了。 问题答案: 等价于,即问题中的#2。 要获得#1,您必须编写。 Java语言规范没有在易于理解的摘要中指定运算符优先级。 Sedge

  • 我正在尝试用在3个不同的(单击)之间切换,下面是我的代码, 方法是从另一个SO帖子引用的。 现在单击窗格3->转换将首先显示,然后显示。 现在单击窗格2->过渡将显示,上面2点中提到的问题不再出现。 为什么转换显示,然后在第1和第2点显示实际的窗格?是不透明度设置的原因吗?

  • 问题内容: 如何转换 为? 这不起作用: 问题答案: 如果您只包含,则可以这样操作: 如果不是,则可以替换 为。

  • 我有这样一个代码: 你能帮我完成代码库吗?

  • 问题内容: 我试图在Go中创建一个通用方法,该方法将填充来自的使用数据。例如,方法签名和用法可能类似于: 我知道可以使用JSON作为中介来完成;还有另一种更有效的方法吗? 问题答案: 最简单的方法是使用https://github.com/mitchellh/mapstructure 如果您想自己做,则可以执行以下操作: http://play.golang.org/p/tN8mxT_V9h