【发布时间】:2011-10-21 17:40:36
【问题描述】:
我有一个包含这样的单词出现的树形图...
TreeMap <String,Integer> occurrence = new TreeMap <String,Integer>();
字符串 = 单词
整数 = 出现次数。
如何获得最大出现次数 - 整数,然后将字符串映射到最高出现次数?
【问题讨论】:
标签: java data-structures treemap
我有一个包含这样的单词出现的树形图...
TreeMap <String,Integer> occurrence = new TreeMap <String,Integer>();
字符串 = 单词
整数 = 出现次数。
如何获得最大出现次数 - 整数,然后将字符串映射到最高出现次数?
【问题讨论】:
标签: java data-structures treemap
您必须遍历地图并线性搜索它。 TreeMap 按键排序,而不是值。
【讨论】:
您可以将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));
}
});
这为您封装了迭代本身,但在幕后它仍然是线性搜索。
【讨论】:
Map 获取相应的出现计数 (Integer) 并返回比较这些值的结果。