私がやりたいことは、マップを値でソートすることです。私はstackoverflowサイトで入手可能な多くの質問を調べ、私が望むことを行う次の解決策を見つけましたが、小さなことを見逃していました.
Link1 : ソーティングマップ
しかし、私が直面している問題は、デフォルトではこれが値の昇順でソートされていることです。降順で並べたい:
だから私がしたことは、コンパレータを実装するクラスを作成することでした
class MyComparator implements Comparator {
Map map;
public MyComparator(Map map) {
this.map = map;
}
public int compare(Object o1, Object o2) {
return ((Integer) map.get(o2)).compareTo((Integer) map.get(o1));
}
}
次に、マップをツリーマップに渡します。
MyComparator comp = new MyComparator(myMap);
Map<String, Integer> newMap = new TreeMap(comp);
newMap.putAll(myMap);
これは非効率的だと思うので、これは悪いアプローチのように思えます。デフォルトで降順で並べ替えるようにリンクのソリューションを変更する方法はありますか。