Java HashMap 获取值(哪个值最多)

标签 java hashmap

嗨,这是一个奇怪的问题...... 我们先来简单描述一下代码: 我有一个 HashMap ,其中填充了 <PlayerUUID, KingdomUUID> 其中playerUUID是 HashMap 中的键(显然)

现在,对于我的捕获处理系统,我需要确定有多少个不同值,从而确定哪个值最多。

例如: 3名玩家正在攻击一个点,2名玩家在ORION王国,1名玩家在Erion。 我需要检查 HashMap 的值,看看哪个王国的攻击者最多。 (猎户座就是答案)

问候, 托马斯

如果不问的话,我希望这个描述足够好!

最佳答案

你可以做 f1sh 所做的事情。但是,Java 8 添加了流和 lambda,您也可以使用它们。生成的代码更加紧凑、更具可读性并且不易出错。这段代码会慢一些,但是除非您处理很多值,否则您可能根本感觉不到它。

public KingdomUUID getMax(HashMap<PlayerUUID, KingdomUUID> inputMap) {
    return inputMap.entrySet()
        .stream()
        .max((entry1, entry2) -> entry1.getValue() > entry2.getValue() ? 1 : -1)
        .get()
        .getValue();
}

更多关于Java 8 streams.

更多关于Java 8 lambdas.

关于Java HashMap 获取值(哪个值最多),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42981124/

相关文章:

java - 如何使用jsp或servlet在任何移动设备上发送短信?

java - 将字符串或变量从对话框传递到 Android Activity

java - 什么时候拥有多个 Play 应用程序而不是一个单一的应用程序是有益的?

java : Arrange and retrieve data using HashMap and List

ruby-on-rails - Ruby 使用正则表达式替换散列键

java - HashMap - contains 和 get 方法不应该一起使用

java - 是否可以从 XSLT 样式表中实例化 Java 表单?

Java Hdd 图形表示

arrays - 为什么在 HashMap 中查找项目比在数组中查找项目更快?

clojure - 映射 HashMap 中的每个值