`

TreeMap

阅读更多
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_echarts_treemap.zip

    ECharts 是百度开发的一个基于 JavaScript 的数据可视化库,它提供了丰富的图表类型,包括柱状图、折线图、饼图以及我们关注的 TreeMap。TreeMap 是一种用以表示层次结构数据的可视化方式,通过不同大小的矩形来展示...

    java treemap 学生信息

    在Java编程语言中,`TreeMap` 是一个有序的键值对集合,它实现了 `SortedMap` 接口。这个数据结构内部基于红黑树(Red-Black Tree)算法实现,保证了插入、删除和查找操作的时间复杂度为 O(log n)。在“java treemap...

    java中HashMap,LinkedHashMap,TreeMap,HashTable的区别

    ### Java中HashMap, LinkedHashMap, TreeMap,HashTable的区别 在Java编程语言中,`Map`接口是集合框架中的一个重要组成部分,用于存储键值对。本文将详细分析四种常用的`Map`实现类:`HashMap`, `LinkedHashMap`, ...

    C# Treemap Sunburst算法

    **C# TreeMap与Sunburst算法详解** 在信息可视化领域,数据的呈现方式至关重要,它能够帮助我们更好地理解和分析复杂的数据结构。C#编程语言提供了多种工具和库来实现这一目标,其中Treemap和Sunburst是两种非常...

    java用treemap统计单词出现的个数

    Java TreeMap统计单词出现的次数 Java TreeMap是一个有序的Map实现,它可以根据对象的自然顺序或自定义的比较器对键进行排序。在本例中,我们使用TreeMap来统计一个句子或一个段落中单词出现的次数,并按照字母表...

    Java里多个Map的性能比较(TreeMap、HashMap、ConcurrentSkipListMap)

    在Java编程中,Map接口是用于存储键值对的数据结构,而Java提供了多种Map的实现,包括TreeMap、HashMap和ConcurrentSkipListMap。本文主要比较了这三种Map的性能,尤其是在插入和查找操作上的效率。 1. **TreeMap**...

    treeMap实现分组数据树形结构

    在Java编程中,TreeMap是一种基于红黑树(Red-Black Tree)算法实现的有序映射数据结构。它按照键的自然顺序或者自定义比较器的顺序来存储元素。在这个场景下,`TreeMap`被用来实现数据的分组,并构建一个树形结构,...

    DataV-TreeMap示例

    **DataV-TreeMap示例** DataV是阿里巴巴开源的一款数据可视化工具,它提供了一系列丰富的图表组件,帮助企业或个人快速构建数据展示应用。在DataV中,TreeMap是一种以矩形树状结构来展示层次数据的可视化方法。这种...

    java编写的命令行学生信息管理程序(用treemap)

    这个程序基于`Treemap`数据结构,这是一种在Java中由`java.util.TreeMap`类提供的有序映射,它允许以键值对的形式存储数据,并且能保持键的自然排序或者自定义排序。 `Treemap`的主要特点: 1. **有序性**:`...

    Python TreeMap可视化方案数据源(实现代码,请看我博客专栏《机器学习》)

    本主题聚焦于使用Python的TreeMap进行数据可视化。TreeMap是一种多层嵌套的矩形图,根据数据大小来分配矩形的面积,使得整体布局紧凑且直观。在Python中,我们可以借助Matplotlib库或专门的可视化库如squarify来实现...

    Map,HashMap,TreeMap的使用

    Java 中的 Map、HashMap、TreeMap 使用详解 Map 是 Java 集合框架中的一个接口,用于存储键值对,根据键可以获取值。Map 中的键不允许重复,但值可以重复。在 Java 中,HashMap、LinkedHashMap、TreeMap 都实现了 ...

    Python_TreeMap_可视化方案数据源(实现代码,请看我博客专栏《机器学习》)

    TreeMap是一种有效的数据可视化方法,尤其适用于展示层次结构数据或比较不同类别的相对大小。在这个案例中,我们将探讨如何使用Python中的`Matplotlib`库来实现TreeMap,同时利用提供的`products.csv`, `aisles.csv`...

    treemap treeset hashset hashmap 简要介绍

    在Java编程语言中,集合框架提供了多种数据结构来存储和操作数据,其中`TreeMap`、`TreeSet`、`HashSet`以及`HashMap`是最常用的数据结构之一。这些集合类各自有着独特的特性和应用场景,下面将对它们进行详细介绍。...

    Treemap-4.1.2

    TreeMap是一种数据结构,它是Java集合框架的一部分,位于`java.util`包中。它实现了一个映射接口,其中键(keys)是唯一的,并且通过自然排序或者自定义比较器进行排序。TreeMap内部使用红黑树算法来维护键值对的...

    TreeMap源码

    TreeMap是Java集合框架中的一种有序映射数据结构,它实现了SortedMap接口,提供了按自然顺序或自定义比较器顺序存储键值对的能力。在深入理解TreeMap的源码之前,我们首先要了解其背后的基石——红黑树。 红黑树...

    用Rust编写的 Squarified Treemap算法_rust_代码_下载

    van Wijk 发布的 Squarified Treemap 算法。 用途 假设我们有一个宽度为 6、高度为 4 的矩形,并且进一步假设这个矩形必须细分为 7 个矩形,面积分别为 6、6、4、3、2、2 和 1。标准树形图算法使用一个简单的方法...

    TreeMap按VALUE排序

    TreeMap按VALUE排序

    TreeMap<K,V>类以及LinkedList<E>

    编写一个应用程序,使用TreeMap,V&gt;类,分别按照价格和容量排序并输出10个硬盘的详细信息 9_5.编写一个应用程序,要求将LinkedList创建的对象写入到文件,然后读出一个LinkedList对象,并遍历LinkedList节点中的数据

    List和Treemap排序实例及效率对比

    本资源提供了List对对象中的属性和TreeMap, String&gt;对键值排序,并针对100w条数据排序,对比List和TreeMap, String&gt;排序的效率。个人认为排序效率对比可以相信,但也可能存在不科学之处,还请高手给与指点,多多包涵...

Global site tag (gtag.js) - Google Analytics