按特定顺序排列hashmap

时间:2013-10-25 14:52:23

标签: java

假设我有一个如下的散列图

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

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

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

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

我需要的订单是

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

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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