我有一個包含這樣的單詞的出現樹圖...發生 - TreeMap中
TreeMap <String,Integer> occurrence = new TreeMap <String,Integer>();
字符串=字
整數=發生量。
我將如何獲得最大出現次數 - 整數然後獲取映射到最高出現次數的字符串?
我有一個包含這樣的單詞的出現樹圖...發生 - TreeMap中
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));
}
});
這封裝了迭代本身對你,但在幕後它仍然是一個線性搜索。
你是指值? –
比較器如何工作? – unleashed
@Thomas:不,我的意思是鍵盤。 @unleashed:比較器通過使用兩個String鍵來工作,但不是比較它們,而是從現有的Map中獲取相應的出現次數('Integer'),並返回比較這些值的結果。 –
...或者如果您發現自己需要頻繁查找某個頻率,則應該更改數據結構。 – Vlad