gpt4 book ai didi

java - 如何按数字对包含另一张 map 的 map 进行排序

转载 作者:行者123 更新时间:2023-11-29 05:49:30 25 4
gpt4 key购买 nike

我有一个 HashMap 类型:

HashMap<String, HashMap<String, Integer>>

这个 HashMap 的值如下

{name, {dateasString, numberOfTasks}} 

我想按 numberOfTasks 对其进行排序。我找不到这样做的方法。

最佳答案

您无法对 HashMap 进行排序,但您可以获得一个已排序的数组(或列表)按键。你想如何定义你的排序取决于你 - 只需修改比较器(或者它调用的 numberOfTasks 函数:)

是这样的吗?

public static void main() {
final
HashMap<String, HashMap<String, Integer>> map = new HashMap<String, HashMap<String, Integer>>();

String[] keys = (String[]) map.keySet().toArray();

Arrays.sort(keys, new Comparator<String>() {
@Override
public int compare(String k1, String k2) {
int v1 = numberOfTasks(map.get(k1));
int v2 = numberOfTasks(map.get(k2));
return Integer.valueOf(v1).compareTo(Integer.valueOf(v2));
}
});

// 'keys' is now sorted the way you want.

}

public static int numberOfTasks(HashMap<String, Integer> map) {
int max = 0;
for (Integer i : map.values()) {
if (i > max) max = i;
}
return max;
}

关于java - 如何按数字对包含另一张 map 的 map 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14476489/

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