このような単語の出現を含むツリーマップがあります...
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));
}
});
これにより、反復自体がカプセル化されますが、舞台裏では依然として線形検索になります。