1

我有一个包含这样的单词出现的树形图......

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

字符串 = 字

整数 = 出现次数。

我将如何获得最大出现次数 - 整数,然后将字符串映射到最高出现次数?

4

2 回答 2

5

您必须遍历地图并线性搜索它。TreeMap是按键排序的,而不是按值排序的。

于 2011-10-21T17:42:29.747 回答
2

您可以使用Collections.max带有自定义比较器的 Map 键集来获取最大条目:

String highestOccurrence = Collections.max(occurrence.keySet(), 
  new Comparator<String>() {
    public int compare(String a, String b) {
       return occurrence.get(a).compareTo(occurrence.get(b));
    }
});

这为您封装了迭代本身,但在幕后它仍然是线性搜索。

于 2011-10-21T17:43:37.973 回答