java - 按一定顺序排列hashmap

标签 java

假设我有一个 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 中的数据填充它,或者
  • HashMapkeySet 中创建一个临时列表,根据需要对其进行排序,然后迭代该排序集,并从原始 中检索数据HashMap 以所需的顺序。
    * HashMap 条目根据它们的哈希码排列在“桶”中,这是非常随意的。

关于java - 按一定顺序排列hashmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19593117/

相关文章:

java - EJB QL 中不区分大小写的搜索

java - Hazelcast 和 MapDB——实现一个简单的分布式数据库

java - android - 如何以编程方式读取 list Intent ?

java - 在java中删除字符串的最后一部分

java - 从 Android 客户端使用 POST 向 java 服务器发送数据并获取 JSON 响应

java - 对 JP-QL (JPA 2.0) 中的 "MEMBER OF"映射字段执行 'ElementCollection' 查询

java - 如何在 Android 上使用文件描述符获取文件路径?

java - 如何在 RestAssured 中将基本身份验证作为请求 header 的一部分传递?

java - 发送电子邮件无需身份验证

java - 解析 RDF 项目