HashMap底层才用了哈希表,哈希表的本质是数组+链表
添加数据过程:add(key)
当添加一个元素(key-value)时,首先计算key的hash值,以此确定插入数组的位置,但是可能存在同一hash值得元素已经存放在同一位置了,这时就添加到同一hash值得元素的后面,他们在数组的同一位置,就形成了链表,同一链表上的hash值时相同的,所以说数组存放的时链表.
jdk8中,当链表长度大于8时,链表就转换为红黑树,这样又大大提高了查找的效率
HashMap底层才用了哈希表,哈希表的本质是数组+链表
添加数据过程:add(key)
当添加一个元素(key-value)时,首先计算key的hash值,以此确定插入数组的位置,但是可能存在同一hash值得元素已经存放在同一位置了,这时就添加到同一hash值得元素的后面,他们在数组的同一位置,就形成了链表,同一链表上的hash值时相同的,所以说数组存放的时链表.
jdk8中,当链表长度大于8时,链表就转换为红黑树,这样又大大提高了查找的效率