JDK1.8中的HashMap数据结构

作者: 山东大葱哥 | 来源:发表于2019-07-02 12:38 被阅读10次

    JDK1.8中的HashMap数据结构使用了数组+链表+红黑树,数组和链表结构和JDK1.7中的基本一致,红黑树是一个新增的方式,具体实现类是内部类TreeMap。
    这是为了为了解决hash碰撞严重导致链表过长后查询占据较低的缺陷引进的。
    想深入了解红黑树,需要对树、二叉树23树、234树有一定的认识,HashMap信你得红黑树是234树的一种具体实现,红黑树就是一个能维持相对平衡的二叉树,使用红黑两种颜色来划分节点,红黑树存在如下约束条件:

    1. 根节点必须为黑色
    2. 其余节点要嘛是红色要嘛是黑色
    3. 最底层的叶子结点为null,是黑色
    4. 父子节点不能同时为黑色
    5. 从任何一个叶子结点到根节点路径上的黑节点数量一致

    相关文章

      网友评论

        本文标题:JDK1.8中的HashMap数据结构

        本文链接:https://www.haomeiwen.com/subject/tzdzcctx.html