java集合框架-HashMap

拈花ヽ惹草 提交于 2020-03-02 22:21:43

    JDK1.8前,HashMap底层使用数组和链表结合。首先通过key的hash值判断当前元素存放在数组的位置;如果该位置存在元素,则判断该元素与要存入的元素的hash值以及key是否相同,如果相同直接副高,不同就接到后面形成链表。

    JDK1.8后,当一个数组位置的链表长度大于阈值(默认8)时,将链表转化为红黑树,减少搜索时间。

ps:TreeMap、TreeSet以及JDK1.8后的HashMap底层都用到了红黑树。红黑树就是为了解决二叉查找树在某些情况下会退化为线性结构的缺陷。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!