如何解决我正在尝试使用Java中的值对嵌套的哈希图进行排序,但无法获取它
这是我的示例哈希图详细信息,需要根据末尾整数的数量进行排序。
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]
,如果您添加了[k1,k2,k3]
,询问其.keySet()
,假设您在构造按该顺序对k1 / k2 / k3进行排序的树形图时提供了一个比较器,或者键的类型具有自然的顺序,即它的排序方式。
无法根据值进行排序。尝试为TreeMap提供比较器时,不能包含与键相关联的值。
因此,除非您亲自手写整个地图实现,否则您想要的(使用值的某些属性使用jumap排序的jumap,使用java.util包中提供的基本工具)是不可能的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。