1

このような単語の出現を含むツリーマップがあります...

TreeMap <String,Integer> occurrence = new TreeMap <String,Integer>();

文字列 = 単語

整数 = 発生量。

最大オカレンス - 整数を取得してから、最も高いオカレンスにマップされた文字列を取得するにはどうすればよいですか?

4

2 に答える 2

5

マップを反復処理して、線形に検索する必要があります。値ではTreeMapなくキーでソートされます。

于 2011-10-21T17:42:29.747 に答える
2

Collections.maxMap のキーセットに対してカスタム コンパレータを使用して、最大のエントリを取得できます。

String highestOccurrence = Collections.max(occurrence.keySet(), 
  new Comparator<String>() {
    public int compare(String a, String b) {
       return occurrence.get(a).compareTo(occurrence.get(b));
    }
});

これにより、反復自体がカプセル化されますが、舞台裏では依然として線形検索になります。

于 2011-10-21T17:43:37.973 に答える