HashMap的底层原理
- 1.8之前是数组+链表,1.8之后做了优化,是数组+链表/红黑树,链表达到了一定的长度后变成红黑树,提高查询性能
- put 原理,就是hash对key取模,放入对应数组下标。hash冲突时使用链表,链表超过一定长度8,变成红黑树
- get原理,就是hash对key取模,取到对应的数组下标,然后遍历链表和查找红黑树。
HashMap为什么要使用红黑树
当链表长度超过8时,链表转换成红黑树,因为链表查询某个kev时需要进行遍历查找,而红黑树相当于对数据进行了排序,可以自动的使用二分法进行定位,因此其增删改查性能较高