假设我有一个 hashmap,如下所示
Map<String,List<String>> nameMap = new HashMap<String,List<String>>();
此外,我在 hashmap 中已经有了以下键值
马丁 - 1 Julia - 3 安德鲁 - 2 史蒂夫 - 5
现在的问题是我有一个特定的顺序,我需要 hashmap 来保存它,当我打印出映射中的条目时,它应该按照我需要的顺序打印。
我需要的顺序是
Julia - 3 安德鲁 - 2 史蒂夫 - 5 马丁 - 1
我知道我可以使用链接 HashMap 来保留顺序。但我原来的是一个 Hashmap,我该如何按我需要的顺序排列它?
最佳答案
因为 HashMap
是未排序的,并且因为它的构造方式不能就地排序 *,所以这里有两个简单的选择:
- 创建一个
LinkedHashMap
,并按所需顺序用原始HashMap
中的数据填充它,或者 - 从
HashMap
的keySet
中创建一个临时列表,根据需要对其进行排序,然后迭代该排序集,并从原始中检索数据HashMap
以所需的顺序。
*HashMap
条目根据它们的哈希码排列在“桶”中,这是非常随意的。
关于java - 按一定顺序排列hashmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19593117/