TreeMap源码分析

来源:互联网 发布:神无月数据互通吗 编辑:程序博客网 时间:2024/06/06 01:33

基本信息

TreeMap 是一个有序的Key-Value集合,内部通过红黑树实现 ,所谓有序指的是:根据其键的自然顺序进行排列(Comparator或Comparable接口);
既然是基于红黑树的,那它的containskey get put remove 方法的时间复杂度都是log(n); 

红黑树

红黑树的本质是一棵平衡二叉树,它需满足的5条性质:
1,每个节点要么是红的要么是黑的;
2,根节点是黑的;
3,每个叶节点是黑的;
4,如果一个节点是红的,那么它的子节点是黑的; 
5,对于任一节点而言,其到叶节点尾端NIL指针的每一条路径都包含相同数目的黑李点;
内部对像Entry包含了6个部分内容:key(键)、value(值)、left(左孩子)、right(右孩子)、parent(父节点)、color(颜色);




0 0
原创粉丝点击