私はマップインターフェイスを使用してファイルから読み取り、その値をキーと値のペアとして保存しています。ファイル形式は次のとおりです。
A 34
B 25
c 50
このファイルからデータを読み取り、それをキーと値のペアとして保存してから、これをユーザーに表示します。私の要件は、結果をこの形式で表示することです
C 50
A 34
B 25
したがって、値の降順でマップをソートする必要があります。これらを結果として表示できるように..これについて読んで、以下のコードを見つけました
static <K,V extends Comparable<? super V>> SortedSet<Map.Entry<K,V>> entriesSortedByValues(Map<K,V> map) {
SortedSet<Map.Entry<K,V>> sortedEntries = new TreeSet<Map.Entry<K,V>>(
new Comparator<Map.Entry<K,V>>() {
@Override public int compare(Map.Entry<K,V> e1, Map.Entry<K,V> e2) {
int res = e1.getValue().compareTo(e2.getValue());
return res != 0 ? res : 1; // Special fix to preserve items with equal values
}
}
);
sortedEntries.addAll(map.entrySet());
return sortedEntries;
}
これで値が昇順でソートされることを願っています。このアプローチが正しいかどうか、または他の効果的なアプローチが役立つかどうかを知りたいだけです。