Java HashMap将值添加到列表的开头
我正在研究java HashMaps,发现它会将值添加到列表的开头。比如说, hm.put(迈克,2); 普特(安德鲁,3岁) 现在,如果我使用迭代器打印hasmap,我得到 安德鲁3 迈克2Java HashMap将值添加到列表的开头,java,hashmap,Java,Hashmap,我正在研究java HashMaps,发现它会将值添加到列表的开头。比如说, hm.put(迈克,2); 普特(安德鲁,3岁) 现在,如果我使用迭代器打印hasmap,我得到 安德鲁3 迈克2 我想在先进先出的方式,而不是后进先出的方式添加项目。。。有办法吗?要使用队列吗 哈希映射没有顺序,您从迭代器中以“错误”的顺序返回它们的事实只是哈希如何在键上发生的函数 您希望如何具体使用此数据结构?请尝试改用。我认为HashMaps不能保证秩序 LinkedHashMap<String,Stri
我想在先进先出的方式,而不是后进先出的方式添加项目。。。有办法吗?要使用队列吗 哈希映射没有顺序,您从迭代器中以“错误”的顺序返回它们的事实只是哈希如何在键上发生的函数 您希望如何具体使用此数据结构?请尝试改用。我认为HashMaps不能保证秩序
LinkedHashMap<String,String> lHashMap = new LinkedHashMap<String,String>();
lHashMap.put("1", "One");
lHashMap.put("2", "Two");
lHashMap.put("3", "Three");
Collection c = lHashMap.values();
Iterator itr = c.iterator();
while (itr.hasNext()){
System.out.println(itr.next());
}
Java中的映射抽象与后进先出(LIFO)或先进先出(FIFO)的概念不符。这些概念主要适用于有序序列,而映射以完全独立于插入值的顺序的顺序存储,以最大限度地提高效率。例如,HashMap使用散列存储其值,散列函数越随机地分布其值,性能越好。类似地,TreeMap使用一个平衡的二叉搜索树,它按排序顺序存储其值以保证快速查找 然而,Java确实有一个非常酷的类,叫做LinkedHashMap,我相信这正是您想要的。它提供了HashMap的速度,同时保证了可预测的遍历顺序,该顺序由插入元素的顺序定义
希望这有帮助 非常感谢。我将尝试使用linkedHashMapA
Map
(以及通常的哈希结构)不是列表,请检查接口规范。如果您想要订购,您需要一些特定的。HashMap
和Hashtable
不保证订购。同意。LinkedHashMap==HashMap+LinkedList@卢声远 LinkedHashMap不是一个列表
One
Two
Three