【发布时间】:2014-11-02 07:19:46
【问题描述】:
我想按地图的值对地图进行排序。但是比较方法已经在类中了。
public class Parser implements Comparator<String> {
private Map<String, Integer> frequencies;
public Parser() {
frequencies = new HashMap<String, Integer>();
}
public int getCount(String word) {
Integer c = frequencies.get(word);
if (c == null) {
return 0;
}
else {
return c.intValue();
}
}
public int compare(String o1, String o2) {
int count1 = getCount(o1);
int count2 = getCount(o2);
return count1 < count2 ? -1 : count1 > count2 ? 1 : 0;
}
public List<String> getWordsInOrderOfFrequency(){
TreeMap<String,Integer> sorted_map = new TreeMap<String,Integer>();
sorted_map.putAll(frequencies);
ArrayList<String> result = new ArrayList<String>(sorted_map.keySet());
return result;
}
}
这里的问题在于 getWordsInOrderOfFrequenct() 方法。我想在比较后按其值对键集进行排序。
【问题讨论】:
-
与stackoverflow.com/questions/26667590/…密切相关。不确定是否值得作为重复关闭。
标签: java