假设我有一个如下的散列图
Map<String,List<String>> nameMap = new HashMap<String,List<String>>();
此外,我在hashmap中已经有以下键值
马丁 - 1 朱莉娅 - 3 安德鲁 - 2 史蒂夫 - 5现在问题是我有一个特定的顺序,我需要哈希图来保存,当我打印出地图中的条目时,它应该按照我需要的顺序打印。
我需要的订单是
朱莉娅 - 3 安德鲁 - 2 史蒂夫 - 5 马丁 - 1我知道我可以使用链接的hashmap来保存订单。但我原来的是Hashmap,我该如何按照我需要的顺序排列?
答案 0 :(得分:3)
由于HashMap
未排序,并且由于它的构造方式 * 而无法对其进行排序,因此您有两个简单的选项:
LinkedHashMap
,并按照所需顺序使用原始HashMap
中的数据填充它,或keySet
的{{1}}提出临时列表,根据需要对其进行排序,然后迭代该有序集,并按所需顺序从原始HashMap
中检索数据。
HashMap
条目根据其哈希码排列在“桶”中,这是非常随意的。答案 1 :(得分:0)
HashMap是无序的。您可以使用LinkedHashMap
答案 2 :(得分:0)
HashMap是有序集合(项目按哈希排序,你不能依赖它)。您可以使用TreeMap。