1

假设我有一个如下的哈希图

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

另外我在哈希图中已经有以下键值

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

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

我需要的顺序是

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

我知道我可以使用链接的哈希图来保留订单。但我原来的一个是 Hashmap,我如何按照我需要的顺序排列它?

4

3 回答 3

3

由于HashMap它是未排序的,并且由于它的构造方式而无法就地排序*,因此您有两个简单的选择:

  • 创建一个,并以所需的顺序LinkedHashMap使用原始数据填充它,或者HashMap
  • keySet从您的 中创建一个临时列表,HashMap根据需要对其进行排序,然后迭代该排序集,并HashMap以所需的顺序从原始列表中检索数据。
    * HashMap条目根据它们的哈希码排列在“桶”中,这是非常随意的。
于 2013-10-25T14:56:25.287 回答
0

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

于 2013-10-25T14:54:30.693 回答
0

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

于 2013-10-25T14:57:04.063 回答