0

如果我有 TreeMap:

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

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

4

3 回答 3

1

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

于 2015-10-28T20:06:15.920 回答
1

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

String s = map.entrySet()
              .stream()
              .max(Map.Entry::comparingByValue)
              .map(Map.Entry::getKey)
              .orElse(null);

s将是null如果map为空。

于 2015-10-28T20:17:08.910 回答
0
TreeMap<String, Integer> map = new TreeMap<String, Integer>();

变成:

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

假设你想要所有最高值的字符串,否则你只想要任何这样的字符串,你可以使用这个构造:

Map<Integer, String> map = new TreeMap<>();
于 2015-10-28T20:13:15.017 回答