繁体   English   中英

按特定顺序排列hashmap

[英]Arrange hashmap in a certain order

假设我有一个如下的hashmap

Map<String,List<String>> nameMap = new HashMap<String,List<String>>();

此外,我在hashmap中已经有以下键值

马丁 - 1朱莉娅 - 3安德鲁 - 2史蒂夫 - 5

现在的问题是我有一个特定的顺序,我需要哈希图来保存,当我打印出地图中的条目时,它应该按照我需要的顺序打印。

我需要的订单是

朱莉娅 - 3安德鲁 - 2史蒂夫 - 5马丁 - 1

我知道我可以使用链接的hashmap来保存顺序。 但我原来的是Hashmap,我该如何按照我需要的顺序排列?

由于HashMap未排序,并且由于它的构造方式无法对其进行排序* ,因此您有两个简单的选项:

  • 创建一个LinkedHashMap ,并按照所需顺序使用原始HashMap中的数据填充它,或者
  • HashMapkeySet中提取临时列表,根据需要对其进行排序,然后迭代该排序集,并按所需顺序从原始HashMap中检索数据。
    * HashMap条目根据其哈希码排列在“桶”中,这是非常随意的。

HashMap是无序的。 您可以使用LinkedHashMap

HashMap是无序的集合(项目按哈希排序,你不能依赖它)。 您可以使用TreeMap。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM