关于java:如何使用与插入时相同的顺序获取Map中的键

how to get keys in Map with same sequence as they were inserted

我正在尝试在Map中放入一些键值,并尝试以与插入时相同的顺序检索它们。 例如下面是我的代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.util.*;
import java.util.Map.Entry;

public class HashMaptoArrayExample {

    public static void main(String args[])

    {
   Map<String,Integer> map=  new HashMap<String,Integer>();

   // put some values into map

   map.put("first",1);
   map.put("second",2);
   map.put("third",3);
   map.put("fourth",4);
   map.put("fifth",5);
   map.put("sixth",6);
   map.put("seventh",7);
   map.put("eighth",8);
   map.put("ninth",9);



    Iterator iterator= map.entrySet().iterator();
       while(iterator.hasNext())
       {
           Entry entry =(Entry)iterator.next();  
           System.out.println(" entries="+entry.getKey().toString());
       }

    }
}

我想检索如下的密钥

1
first second third fourth fifth sixth .....

但它在我的输出中以一些随机顺序显示如下

1
2
3
OUTPUT

ninth eigth fifth first sixth seventh third fourth second


您不能使用HashMap执行此操作,HashMap不会在其数据中的任何位置维护插入顺序。 看看LinkedHashMap,它是为了维持这个顺序而精心设计的。


HashMap是哈希表。 这意味着插入密钥的顺序无关紧要,因为它们不按此顺序存储。 插入另一个密钥的那一刻,忘记了最后一个密钥的信息。

如果要记住插入顺序,则需要使用不同的数据结构。