TreeMap
源码解析:
https://blog.csdn.net/qq_23211905/article/details/76691961
TreeMap底层是基于红黑树进行处理的。查询,插入,删除的时间复杂度为O(logN),插入和删除会牵扯到红黑树的左旋,右旋和着色。
TreeMap不是线程安全的类。
TreeSet:
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中可以存在。
:
分享到:
相关推荐
vue 2.x echarts treemap带示例数据及效果图,及在对话框里显示的处理方法
JAVA中用TREEMAP做的,可以求学生的总分,总分的平均值,最大值最小值
java中HashMap,LinkedHashMap,TreeMap,HashTable的区别
van Wijk 发布的 Squarified Treemap 算法。 用途 假设我们有一个宽度为 6、高度为 4 的矩形,并且进一步假设这个矩形必须细分为 7 个矩形,面积分别为 6、6、4、3、2、2 和 1。标准树形图算法使用一个简单的方法...
编写一个应用程序,使用TreeMap,V>类,分别按照价格和容量排序并输出10个硬盘的详细信息 9_5.编写一个应用程序,要求将LinkedList创建的对象写入到文件,然后读出一个LinkedList对象,并遍历LinkedList节点中的数据
TreeMap按VALUE排序
本资源提供了List对对象中的属性和TreeMap, String>对键值排序,并针对100w条数据排序,对比List和TreeMap, String>排序的效率。个人认为排序效率对比可以相信,但也可能存在不科学之处,还请高手给与指点,多多包涵...
1. TreeMap 2. HashMap 3. ConcurrentSkipListMap 本测试查找方法使用Map的get方法,循环、离散获取。对于ConcurrentSkipListMap,获得顺序片段,可用subMap()方法,提取50w的子序列只需要1ms,具有巨大优势。 ...
treeMap实现分组数据树形结构,在通过Redis和MySQL数据库ID生成序列ID
在eclipse上用java实现统计一句话或一段话中单词出现的个数,并按照字母表顺序输出,并利用treemap实现
Map,HashMap,TreeMap的使用 很详细额,值得看看
Java TreeMap源码解析 Java TreeMap源码解析 Java TreeMap源码解析
Python TreeMap可视化方案数据源(因为不能粘贴链接额,具体实现实现代码,请看我博客专栏《机器学习》:))
treemap treeset hashset hashmap 简要介绍
Python_TreeMap_可视化方案数据源(因为不能直接粘贴链接,所以实现代码,请移步看我博客专栏《机器学习》)
JDK源码剖析之红黑树TreeMap,偶然看见,传上来分享一下
TreeMap自己的理解
Treemap-4.1.2.zip tree map开发代码,可用于创建tree map
TreeMap源码是基于数据结构中的红黑树进行设计并开发的。
TreeMap例子GDP