如果我有 TreeMap:
TreeMap<String, Integer> map = new TreeMap<String, Integer>();
我想打印出String
价值最高的。我已经看到有关排序的其他问题,但我想知道是否有任何平滑的方法可以在地图中获得最大值?
不,为此您需要切换键和值。这是已排序的键。
使用 Java 8,获取具有最高值的键的单行方法是:
String s = map.entrySet()
.stream()
.max(Map.Entry::comparingByValue)
.map(Map.Entry::getKey)
.orElse(null);
s
将是null
如果map
为空。
TreeMap<String, Integer> map = new TreeMap<String, Integer>();
变成:
Map<Integer, Collection<String>> map = new TreeMap<>();
假设你想要所有最高值的字符串,否则你只想要任何这样的字符串,你可以使用这个构造:
Map<Integer, String> map = new TreeMap<>();