【发布时间】:2013-07-31 04:42:18
【问题描述】:
我需要根据树形图的值对其进行排序。我正在做的事情的要求是我必须使用排序地图。我在这里尝试了解决方案:Sort a Map<Key, Value> by values (Java) 但是正如 cmets 所说,这将使从我的地图中获取值不起作用。所以,我做了以下事情:
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/) 时,它始终为空。
我也不明白与 equals even 不一致的比较器是什么意思。
【问题讨论】:
-
你能在你得到空值的地方添加代码吗?