我想知道Java在添加项目时如何在Map(HashMap或Hashtable)中对项目进行排序。密钥是按哈希码,内存引用还是分配优先级排序的?
Map
HashMap
Hashtable
这是因为我注意到中的相同对Map并不总是以相同的顺序排列
java.util.HashMap无序的 您不能也不应承担任何其他责任。
java.util.HashMap
此类无法保证地图的顺序。特别是,它不能保证顺序会随着时间的推移保持恒定。
java.util.LinkedHashMap 使用插入顺序。
java.util.LinkedHashMap
此实现的不同之处HashMap在于,它维护一个遍历其所有条目的双向链接列表。此链表定义了迭代顺序,通常是将键插入映射的顺序(插入顺序)。
java.util.TreeMap,a SortedMap,使用键的自然顺序或自定义顺序。
java.util.TreeMap
SortedMap
映射是根据其键的自然顺序来排序的,或者根据Comparator在映射创建时提供的映射来排序,具体取决于所使用的构造函数。
Comparator