【问题标题】:occurrence - TreeMap发生 - TreeMap
【发布时间】:2011-10-21 17:40:36
【问题描述】:

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

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

字符串 = 单词

整数 = 出现次数。

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

【问题讨论】:

    标签: java data-structures treemap


    【解决方案1】:

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

    【讨论】:

    • ...或者如果您发现自己需要经常根据频率查找某些内容,则应该更改数据结构。
    【解决方案2】:

    您可以将Collections.max 用于带有自定义比较器的地图键集,以获得最大的条目:

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

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

    【讨论】:

    • @Thomas:不,我的意思是键集。 @unleashed:比较器通过获取两个 String 键来工作,但不是比较它们,而是从现有的 Map 获取相应的出现计数 (Integer) 并返回比较这些值的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多