値に基づいてツリーマップをソートする必要がありました。私がやっていることの要件は、ソートされたマップを使用する必要があるということです。私はここで解決策を試しました:値 (Java) で Map<Key, Value> を並べ替えますが、コメントにあるように、これによりマップから値を取得できなくなります。そのため、代わりに次のことを行いました。
class sorter implements Comparator<String> {
Map<String, Integer> _referenceMap;
public boolean sortDone = false;
public sorter(Map<String, Integer> referenceMap) {
_referenceMap = referenceMap;
}
public int compare(String a, String b) {
return sortDone ? a.compareTo(b) : _referenceMap.get(a) >= _referenceMap.get(b) ? -1 : 1;
}
}
そのため、マップの並べ替えが完了するまで sortDone を false のままにしておき、それから sortDone を true に切り替えて、通常どおりに比較します。問題は、まだマップからアイテムを取得できないことです。myMap.get(/ anything /) を実行すると、常に null のままです。
また、等号と矛盾する比較演算子が何を意味するのかわかりません。