jdk到jdk.hashmap发生了什么变化(底层)
时间: 2023-12-10 07:12:38 浏览: 68
Hashmap实现了Map接口的底层实现.docx
从JDK1.7开始,HashMap对于hash值相同的不同key采取了链式存储结构,称为“链表”,因此称为“链表散列”。但是,当链表中的元素超过阈值(默认为8)时,链表会转换为平衡树(红黑树)结构,称为“树形散列”,以保证插入、删除和搜索的时间复杂度为O(logN)。这提高了HashMap的性能和效率。从JDK1.8开始,对于小于等于6的元素,HashMap采用链表存储结构,对于大于等于8的元素,HashMap采用红黑树存储结构,并可以通过TreeifyThreshold参数来调整阈值。同时,JDK1.8还引入了结构修改次数和快速失败机制,以提高HashMap的稳定性和可靠性。
阅读全文