我想知道当项目被添加时,Java是如何在Map
(HashMap
或Hashtable
)中排序的。这些键是按哈希码、内存引用还是按分配优先级排序的?
这是因为我注意到Map
中的相同对并不总是具有相同的顺序
发布于 2010-05-12 18:04:39
hashmap具有未定义的元素顺序
发布于 2010-05-12 18:03:35
哈希表中没有定义的排序。根据哈希码将键放入槽中,但即便如此,这也不是一个简单的按哈希码排序。
发布于 2010-05-12 18:13:20
HashMap使用使用键的一部分生成的唯一哈希值来存储值。此散列值映射到要存储它的地址。这就是它确保访问O(1)的方式。
另一方面,LinkedHashmap保留了添加到地图中的顺序。
https://stackoverflow.com/questions/2817695
复制相似问题