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

时间:2011-01-27 11:42:00

标签: java

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

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());
       }

    }
}

我想检索下面的密钥

first second third fourth fifth sixth .....

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

OUTPUT

ninth eigth fifth first sixth seventh third fourth second

2 个答案:

答案 0 :(得分:57)

您不能使用HashMap执行此操作,{{1}}不会在其数据中的任何位置维护广告订单。请查看LinkedHashMap,其设计精确是为了维持此顺序。

答案 1 :(得分:4)

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

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