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
。
如果我有一个 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
。