Java: TreeMap 中的最大值

Java: Maximum value in TreeMap

如果我有一个 TreeMap:

TreeMap<String, Integer> map = new TreeMap<String, Integer>();

我想打印出最高值的String。我看到其他关于排序的问题,但我想知道是否有任何顺利的方法可以在地图中获得最大值?

不,为此您需要切换密钥和值。这是排序的键。

TreeMap<String, Integer> map = new TreeMap<String, Integer>();

变为:

Map<Integer, Collection<String>> map = new TreeMap<>();

假设你想要 all 最高值字符串,否则你只想要 any 这样的字符串你可以使用这个结构:

Map<Integer, String> map = new TreeMap<>();

使用Java 8,获取具有最高值的键的一行是:

String s = map.entrySet()
              .stream()
              .max(Map.Entry::comparingByValue)
              .map(Map.Entry::getKey)
              .orElse(null);
如果 map 为空,

s 将是 null