我使用hashmap来存储一些数据,但是每当保存到hashmap或旧数据的新数据移出hashmap时,我都需要按升序保持它。但hashmap本身不支持顺序,我可以用什么数据结构来支持订单?感谢
答案 0 :(得分:8)
TreeMap将是规范的有序地图实现。请注意,这是在键上排序的,我认为这是你所追求的,但如果没有,它将不合适。
由于Java 6还带有SortedMap接口,您可以查看实现它的类列表(在链接的Javadoc页面上),并在这些接口之间进行选择。实现此方法只能保证它们具有定义的迭代顺序的某种,您必须阅读每个类的描述以查看它是否是您喜欢的。
TreeMap不是散列映射,因为它没有哈希表支持以提供分摊的O(1)
插入。但是,无论如何都不可能维护带有O(1)
插入的有序映射(因为您必须至少检查现有元素的某些以确定新元素的去向),以及因此O(lg n)
的{{1}}表现与你在这种情况下的表现一样好。
答案 1 :(得分:2)
LinkedHashMap可能就是你要找的东西。 http://download.oracle.com/javase/1.4.2/docs/api/java/util/LinkedHashMap.html