TreeMap_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > TreeMap

TreeMap

 2018/3/26 0:47:12  chen.zhu  程序员俱乐部  我要评论(0)
  • 摘要:TreeMap源码解析:https://blog.csdn.net/qq_23211905/article/details/76691961TreeMap底层是基于红黑树进行处理的。查询,插入,删除的时间复杂度为O(logN),插入和删除会牵扯到红黑树的左旋,右旋和着色。TreeMap不是线程安全的类。TreeSet:privatetransientNavigableMap<E,Object>m;TreeSet(NavigableMap<E,Object>m){this
  • 标签:Map
TreeMap
源码解析:https://blog.csdn.net/qq_23211905/article/details/76691961

        TreeMap底层是基于红黑树进行处理的。查询,插入,删除的时间复杂度为O(logN),插入和删除会牵扯到红黑树的左旋,右旋和着色。

TreeMap不是线程安全的类。

TreeSet:
class="java" name="code">
    private transient NavigableMap<E,Object> m;
    
    TreeSet(NavigableMap<E,Object> m) {
        this.m = m;
    }
    
    public TreeSet() {
        this(new TreeMap<E,Object>());
    }

TreeSet源码中维护着一个NavigableMap,直接创建对象的时候是创建一个TreeMap,因此TreeSet底层实现原理和TreeMap一样,都是红黑树实现的。

TreeSet和TreeMap的关系:TreeSet里面绝大部分方法都市直接调用TreeMap方法来实现的。 
两者的区别:
相同点: 
1:TreeMap和TreeSet都是非同步集合,因此他们不能在多线程之间共享,不过可以使用方法Collections.synchroinzedMap()来实现同步。
2:运行速度都要比Hash集合慢,他们内部对元素的操作时间复杂度为O(logN),而HashMap/HashSet则为O(1)。
3:TreeMap和TreeSet都是有序的集合,也就是说他们存储的值都是拍好序的。

不同点: 
1:最主要的区别就是TreeSet和TreeMap分别实现Set和Map接口
2:TreeSet只存储一个对象,而TreeMap存储两个对象Key和Value(仅仅key对象有序)。
3:TreeSet中不能有重复对象,而TreeMap中可以存在。
:
上一篇: java职业发展所应具有的技能。 学习路线图 下一篇: 没有下一篇了!
发表评论
用户名: 匿名