gpt4 book ai didi

java - 根据出现次数打印

转载 作者:太空宇宙 更新时间:2023-11-04 07:42:59 25 4
gpt4 key购买 nike

我试图根据 HashMap 中每个键的出现次数对程序的输出进行排序。我希望它以出现次数递增的顺序打印出来。它已经正确打印出来,只是顺序不正确。我看了这个页面Sort a Map<Key, Value> by values但它确实令人困惑,什么仍然有效,什么无效。

HashMap -

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;
}

最佳答案

编辑:误读了要求。见下文。

您需要取出所有对象如果您想保持其原样,请执行以下操作:

final ArrayList<Map.Entry<String,NumberHolder>> entries 
= new ArrayList<Map.Entry<String,NumberHolder>>(uaCount.entrySet());

Comparator<Map.Entry<String,NumberHolder>> comp = new Comparator<Map.Entry<String,NumberHolder>>() {
@Override
public int compare(Map.Entry<String, Something> o1, Map.Entry<String, Something> o2) {
return Integer.compare(o1.getValue().occurrences,o2.getValue().occurrences);
}
};

Collections.sort(entries, comp);

for(Map.Entry<String,NumberHolder> entry : entries)
{
... // use entry.getKey(), entry.getValue()
}

请注意,您引用的问题似乎确实有很多有用的答案和其他信息,特别是在性能成为问题的情况下。

关于java - 根据出现次数打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15765733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com