我有一个包含这样的单词出现的树形图......
TreeMap <String,Integer> occurrence = new TreeMap <String,Integer>();
字符串 = 字
整数 = 出现次数。
我将如何获得最大出现次数 - 整数,然后将字符串映射到最高出现次数?
我有一个包含这样的单词出现的树形图......
TreeMap <String,Integer> occurrence = new TreeMap <String,Integer>();
字符串 = 字
整数 = 出现次数。
我将如何获得最大出现次数 - 整数,然后将字符串映射到最高出现次数?
您必须遍历地图并线性搜索它。TreeMap
是按键排序的,而不是按值排序的。
您可以使用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));
}
});
这为您封装了迭代本身,但在幕后它仍然是线性搜索。