我正在尝试在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
答案 0 :(得分:57)
您不能使用HashMap
执行此操作,{{1}}不会在其数据中的任何位置维护广告订单。请查看LinkedHashMap
,其设计精确是为了维持此顺序。
答案 1 :(得分:4)
HashMap
是一个哈希表。这意味着插入密钥的顺序无关紧要,因为它们不按此顺序存储。插入另一个密钥的那一刻,忘记了最后一个密钥的信息。
如果您想记住插入顺序,则需要使用不同的数据结构。