java - 排序 HashMap 及其嵌套的 HashMap

标签 java sorting hashmap

我正在尝试对嵌套的 hashMap 进行排序,其中两个 HashMap 都需要进行排序。

第一个hashMap应该是key排序的。第二个应该按值排序。 到目前为止,我设法通过制作一个键数组并对其进行排序来对第一个 hashMap 的键进行排序。

我的 hashmap 是这样的

 HashMap<String,HashMap<String,Integer>> carOwners = new 
                                    HashMap<String,HashMap<String, Integer>>();

举个例子,假设我们的第一个字符串是名称、汽车品牌、数量。

例子: 大卫:

奥迪>5

宝马>4

伊莎贝尔:

大众>10

MB>4

所以基本上首先我们对名称进行排序,然后我们按值对嵌套的散列进行排序。这怎么能做到...找不到任何有用的信息:(>

最佳答案

要对 Map 进行排序,您可以使用以下类:TreeMap。作为official documentation说,

The map is sorted according to the natural ordering of its keys, or by a Comparator provided at map creation time, depending on which constructor is used.

如果您想按插入顺序对元素进行排序,请使用LinkedHashMap .

This linked list defines the iteration ordering, which is normally the order in which keys were inserted into the map (insertion-order).

要按值对 Map 进行排序,请参阅 post .它也适用于 Java7 和 Java8。

希望对您有所帮助。

关于java - 排序 HashMap 及其嵌套的 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44813594/

相关文章:

java - hashmap中迭代器和for循环的区别

java - Java错误不是语句和 ';'预期

Python 快速排序实现遗漏了重复元素

java - 使用 java 将 HashMap 的键和值转换为 HTML 表

Python:使用另一个列表顺序对列表进行排序,具有不同的长度,并且没有 'sorted'

java - Java中的排序列表<>

java - map 中特定键的值总和

java - 在 Tomcat 中运行 native 命令时权限被拒绝

java - 我怎样才能在java中获取系统的当前日期和时间而不使用任何预定义的类或库?

java - 更新 JTable