美文网首页
java集合

java集合

作者: 夜雨听风_b3d5 | 来源:发表于2019-11-04 23:03 被阅读0次

    1. map

    JDK 1.8 以后map中用到了红黑:

    ⑴红链接均为左链接。

    ⑵没有任何一个结点同时和两条红链接相连。

    ⑶该树是完美黑色平衡的,即任意空链接到根结点的路径上的黑链接数量相同。

    这里节点之间的连接分为红连接和黑连接,取代了红节点和黑节点的定义(本质是一样的),将之前的黑高度相等定义为了黑连接数相等。更为直观。

    而如图所示,其实红黑树的每一步操作都对应了二三树的操作,如果是二节点就是黑连接,三节点的话里面的两个数之间就是红连接。

    红黑树的优势

    红黑树相比avl树,在检索的时候效率其实差不多,都是通过平衡来二分查找。但对于插入删除等操作效率提高很多。红黑树不像avl树一样追求绝对的平衡,他允许局部很少的不完全平衡,这样对于效率影响不大,但省去了很多没有必要的调平衡操作,avl树调平衡有时候代价较大,所以效率不如红黑树,在现在很多地方都是底层都是红黑树的天下啦~

    总结

    HashMap在里面就是链表加上红黑树的一种结构,这样利用了链表对内存的使用率以及红黑树的高效检索,是一种很happy的数据结构。

    仅个人学习整理

    相关文章

      网友评论

          本文标题:java集合

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