【发布时间】:2013-04-02 13:43:38
【问题描述】:
我正在尝试根据哈希图中每个键的出现次数对程序的输出进行排序。我希望它以出现的递增顺序打印出来。它已经正确打印出来了,只是没有按顺序打印。我查看了此页面Sort a Map<Key, Value> by values,但对于哪些仍然有效,哪些无效,这确实令人困惑。
哈希图-
Map<String, NumberHolder> uaCount = new HashMap<String, NumberHolder>();
印刷部分
for(String str : uaCount.keySet())
{
String [] arr = str.split(":");
long average = uaCount.get(str).sumtime_in_milliseconds / uaCount.get(str).occurrences;
System.out.println(arr[0] + " ---> " + arr[1] + "---> " + arr[2] + "--->" + arr[3] + "\nAverage = " + average + " milliseconds \nOccurrences = " + uaCount.get(str).occurrences);
}
我的NumberHolder 类已定义
public static class NumberHolder
{
public int occurrences = 0;
public int sumtime_in_milliseconds = 0;
}
【问题讨论】:
-
顺便说一句,如果您可以添加外部依赖项,请查看 Google Guava multimaps/multisets。他们为你做点数,并有很好的 API 用于排序。
标签: java hashmap comparator