0

値に基づいてツリーマップをソートする必要がありました。私がやっていることの要件は、ソートされたマップを使用する必要があるということです。私はここで解決策を試しました:値 (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 のままです。

また、等号と矛盾する比較演算子が何を意味するのかわかりません。

4

2 に答える 2