Java 发生树图
我有一个树形图,上面有这样的单词Java 发生树图,java,data-structures,treemap,Java,Data Structures,Treemap,我有一个树形图,上面有这样的单词 TreeMap <String,Integer> occurrence = new TreeMap <String,Integer>(); TreeMap事件=newtreemap(); 字符串=字 整数=发生的数量 如何获取最大出现次数-整数,然后将字符串映射到最大出现次数 您必须迭代地图并线性搜索它。TreeMap是按键排序的,而不是按值排序的。您必须遍历映射并线性搜索它。TreeMap按键排序,而不是按值排序。您可以使用自定义比
TreeMap <String,Integer> occurrence = new TreeMap <String,Integer>();
TreeMap事件=newtreemap();
字符串=字
整数=发生的数量
如何获取最大出现次数-整数,然后将字符串映射到最大出现次数 您必须迭代地图并线性搜索它。
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));
}
});
String highestOccurrence=Collections.max(occurrence.keySet(),
新比较器(){
公共整数比较(字符串a、字符串b){
返回occurrence.get(a).compareTo(occurrence.get(b));
}
});
这为您封装了迭代本身,但在幕后它仍然是一个线性搜索。您可以使用带有自定义比较器的地图键集使用
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));
}
});
String highestOccurrence=Collections.max(occurrence.keySet(),
新比较器(){
公共整数比较(字符串a、字符串b){
返回occurrence.get(a).compareTo(occurrence.get(b));
}
});
这为您封装了迭代本身,但在幕后它仍然是一个线性搜索。。。。或者,如果您发现自己需要经常按频率查找某些内容,您应该更改数据结构。。。。或者,如果您发现自己需要经常按频率查找某些内容,您应该更改您的数据结构。@Thomas:不,我指的是键集@释放:比较器通过获取两个字符串键来工作,但它不会对它们进行比较,而是从现有的
映射中获取相应的出现计数(Integer
),并返回比较这些值的结果。@Thomas:不,我指的是键集@释放:比较器通过获取两个字符串键来工作,但它不会对它们进行比较,而是从现有的映射中获取相应的出现计数(Integer
),并返回比较这些值的结果。