我试图使用java中的值对嵌套hashmap进行排序,但无法';我不明白
下面是我的示例hashmap详细信息,需要根据末尾的整数值进行排序我试图使用java中的值对嵌套hashmap进行排序,但无法';我不明白,java,list,arraylist,hashmap,treemap,Java,List,Arraylist,Hashmap,Treemap,下面是我的示例hashmap详细信息,需要根据末尾的整数值进行排序 Input: {First={ How={H=9}, Are={A=1}, You={U=325}}, Second={ Are={A=19}, You={U=110}, HOW={H=3}} } Expected output should be: {First={ You={U=325}
Input:
{First={
How={H=9},
Are={A=1},
You={U=325}},
Second={
Are={A=19},
You={U=110},
HOW={H=3}}
}
Expected output should be:
{First={
You={U=325}
How={H=9},
Are={A=1}},
Second={
You={U=110}
Are={A=19},
HOW={H=3}}
}
有任何选项可以实现这一点吗?
java.util.HashMap
是一个基本上无序的概念LinkedHashMap
(一个子类)按插入顺序排序:如果先添加[k1,v1]
,然后添加[k3,v3]
,然后再添加[k2,v2]
,这也是迭代其.keySet()
、或其.values()
、或其.entrySet()
时报告的确切顺序
还有对输入进行排序的java.util.TreeMap
:如果您添加[k1,v1]
,然后[k3,v3]
然后[k2,v2]
,如果您询问它的.keySet(),它将返回[k1,k2,k3]
,假设在构建按顺序对k1/k2/k3排序的树状图时提供了一个比较器,或者假设键的类型具有自然顺序,这就是它的排序方式
无法根据值进行排序。在尝试为树映射生成比较器时,不能涉及与键关联的值
因此,您想要的(使用java.util包中提供的基本工具,根据值的某些属性排序的j.u.map)是不可能的,除非您自己手工编写整个map实现