一連のエントリを取得して、必要に応じて並べ替えることができます。
一連のエントリを取得する方法は次のとおりです。
Set<Multiset.Entry<Integer>> entries = myIntegerMultiset.entrySet();
そして、並べ替えるために、2 つのコンパレーターを定義できます。
Comparator<Multiset.Entry<Integer>> byCount = new Comparator<Multiset.Entry<Integer>>() {
int compare(Multiset.Entry<Integer> e1, Multiset.Entry<Integer> e2) {
return e2.getCount() - e1.getCount();
}
}
Comparator<Multiset.Entry<Integer>> byValue = new Comparator<Multiset.Entry<Integer>>() {
int compare(Multiset.Entry<Integer> e1, Multiset.Entry<Integer> e2) {
return e2.getElement() - e1.getElement();
}
}
次に、並べ替えられたコレクションを取得するためにツリー セットにコンパレータを提供できます。
Set<Multiset.Entry<Integer>> entries = myIntegerMultiset.entrySet();
Set<Multiset.Entry<Integer>> entriesSortedByCount = Sets.newTreeset(byCount);
entriesSortedByCount.addAll(entries);
Set<Multiset.Entry<Integer>> entriesSortedByValue = Sets.newTreeset(byValue);
entriesSortedByValue.addAll(entries);
実際には、Louis Wasserman の回答の方がはるかに優れていますが、並べ替えをカスタマイズしたい場合に備えて、これも投稿します。