Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >请解释一下TreeMap?

请解释一下TreeMap?

作者头像
剑走天涯
发布于 2019-09-10 07:10:23
发布于 2019-09-10 07:10:23
4740
举报
文章被收录于专栏:Java LifeJava Life

01

TreeMap是一个有序的key-value集合,基于红黑树(Red-Black tree)的 NavigableMap实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator进行排序,具体取决于使用的构造方法。

TreeMap的特性:

1)根节点是黑色

2)每个节点都只能是红色或者黑色

3)每个叶节点(NIL节点,空节点)是黑色的。

4)如果一个节点是红色的,则它两个子节点都是黑色的,也就是说在一条路径上不能出现两个红色的节点。

5)从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-09-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java Life 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java中 Treemap和 Treeset的使用
首先要注意的是,本文章不涉及到红黑树的具体实现,也就是说不会逐行分析TreeMap和TreeSet的源码实现,因为红黑树看了也会忘的…
呼延十
2019/07/01
1.3K0
TreeMap源码分析,看了都说好
TreeMap也是Map接口的实现类,它最大的特点是迭代有序,默认是按照key值升序迭代(当然也可以设置成降序)。在前面的文章中讲过LinkedHashMap也是迭代有序的,不过是按插入顺序或访问顺序,这与TreeMap需要区分开来。TreeMap内部用红黑树存储数据,而不是像HashMap、LinkedHashMap、WeakHashMap一样使用哈希表来存储。
李红
2019/09/10
4800
TreeMap源码分析,看了都说好
Java TreeMap 源码解析
可以看到,相比HashMap来说,TreeMap多继承了一个接口NavigableMap,也就是这个接口,决定了TreeMap与HashMap的不同:
哲洛不闹
2018/09/19
4240
Java TreeMap 源码解析
Java集合深度解析之TreeMap
红黑树简介 TreeMap是基于红黑树实现的,这里只对红黑树做个简单的介绍,红黑树是一种特殊的二叉排序树,红黑树通过一些限制,使其不会出现二叉树排序树中极端的一边倒的情况,相对二叉排序树而言,这自然提
互扯程序
2018/03/26
8140
Java集合深度解析之TreeMap
【Java基础】HashMap、TreeMap、都用了红黑树
昨天模拟面试,面试官问到了 哈希map 和 treeMap 我说都是使用了 红黑树 问我有什么区别 还有复杂度 稍微一深入讨论 我就废掉了 先亡羊补牢一下
韩旭051
2021/04/14
4750
【Java基础】HashMap、TreeMap、都用了红黑树
Java集合--TreeMap完全解析
4 TreeMap 上一篇,介绍了集合框架中的HashMap对象,主要讲述了HashMap的底层实现和基本操作。本篇,让我们继续来学习Map集合,今天的主角是TreeMap。 相比于HashMap来说,TreeMap理解起来更为复杂,你做好准备了吗? 4.1 TreeMap 在Map集合框架中,除了HashMap以外,TreeMap也是我们工作中常用到的集合对象之一。 与HashMap相比,TreeMap是一个能比较元素大小的Map集合,会对传入的key进行了大小排序。其中,可以使用元素的自然顺序,也可以使
贾博岩
2018/05/11
4.1K0
Java中的数据结构(一):为什么是红黑树
这段时间在重新复习一些Java基础知识,看到HashMap在1.8的改进中增加了红黑树,不经产生了一个疑问:为什么是红黑树?同样是二叉树,为什么红黑树能这么优秀?
闲宇非鱼
2022/02/08
4380
Java中的数据结构(一):为什么是红黑树
Java中Map接口的解析
Map<String, String> map = new HashMap<String, String>();
全栈程序员站长
2022/09/08
7390
java-集合
List以特定索引来存取元素,可以有重复元素。Set不能存放重复元素(用对象的equals()方法来区分元素是否重复)。Map保存键值对(key-value pair)映射,映射关系可以是一对一或多对一。Set和Map容器都有基于哈希存储和排序树的两种实现版本,基于哈希存储的版本理论存取时间复杂度为O(1),而基于排序树版本的实现在插入或删除元素时会按照元素或元素的键(key)构成排序树从而达到排序和去重的效果。
知识浅谈
2021/10/18
6530
【JDK1.8】JDK1.8集合源码阅读——TreeMap(二)
一、前言 在前一篇博客中,我们对TreeMap的继承关系进行了分析,在这一篇里,我们将分析TreeMap的数据结构,深入理解它的排序能力是如何实现的。这一节要有一定的数据结构基础,在阅读下面的之前,推
joemsu
2018/05/17
8700
死磕 java集合之TreeMap源码分析(一)- 内含红黑树分析全过程
TreeMap实现了Map、SortedMap、NavigableMap、Cloneable、Serializable等接口。
彤哥
2019/07/08
3330
死磕 java集合之TreeMap源码分析(一)- 内含红黑树分析全过程
Java集合,TreeMap底层实现和原理
文章的内容基于JDK1.7进行分析,之所以选用这个版本,是因为1.8的有些类做了改动,增加了阅读的难度,虽然是1.7,但是对于1.8做了重大改动的内容,文章也会进行说明。
用户6182664
2019/10/17
1.2K0
Java集合,TreeMap底层实现和原理
java各种集合类区别
集合接口分为:Collection和Map,list、set实现了Collection接口
全栈程序员站长
2022/06/27
5770
java各种集合类区别
文心一言 VS 讯飞星火 VS chatgpt (176)-- 算法导论13.3 5题
要证明这个问题,我们首先需要理解红黑树的性质。红黑树是一种自平衡二叉搜索树,它在插入和删除操作中维护一些属性,以保证搜索、插入和删除操作的时间复杂性为O(log n)。红黑树的性质包括:
福大大架构师每日一题
2024/01/11
1570
文心一言 VS 讯飞星火 VS chatgpt (176)-- 算法导论13.3 5题
欢迎来到 TreeMap 的吐槽大会
吃饭间隙,迷上了《吐槽大会》,一集一集地刷啊,觉得这些嘉宾真的挺有勇气的,敢于直面自己的惨淡槽点。于是,同学们看到了,我作为一个技术博主,也受到了“传染”,不,受到了“熏陶”,本来这篇文章标题就想叫《TreeMap 指南》,是不是有点平淡无奇,没有槽点?于是我就想,不妨蹭点吐槽大会的热度吧,虽然吐槽大会现在也没什么热度了哈。
沉默王二
2020/08/31
5780
欢迎来到 TreeMap 的吐槽大会
文心一言 VS 讯飞星火 VS chatgpt (164)-- 算法导论13.1 4题
每个节点或是红色,或是黑色。 根节点是黑色。 每个叶节点(NIL或空节点)是黑色。 如果一个节点是红色的,则它的两个子节点都是黑色的。 从任一节点到其每个叶节点的所有路径都包含相同数目的黑色节点。 假设我们将红黑树中的每个红结点“吸收”到它的黑色父结点中,这意味着红结点的子结点将变成黑色父结点的子结点。由于红黑树的性质,我们知道红结点的子节点都是黑色的。
福大大架构师每日一题
2023/12/27
1400
文心一言 VS 讯飞星火 VS chatgpt (164)-- 算法导论13.1 4题
文心一言 VS 讯飞星火 VS chatgpt (175)-- 算法导论13.3 4题
首先,我们需要明确RB-INSERT-FIXUP的功能和实现方式。RB-INSERT-FIXUP是在红黑树中插入元素时用来修复树的函数,其目标是保持红黑树的性质,确保树始终保持平衡。
福大大架构师每日一题
2024/01/11
1580
文心一言 VS 讯飞星火 VS chatgpt (175)-- 算法导论13.3 4题
TreeMap源码解析
红黑树 就是一种平衡的二叉查找树,说他平衡的意思是他不会变成“瘸子”,左腿特别长或者右腿特别长。除了符合二叉查找树的特性之外,还具体下列的特性:
103style
2022/12/19
4010
TreeMap源码解析
【Java提高十八】Map接口集合详解
四、Map接口 Map与List、Set接口不同,它是由一系列键值对组成的集合,提供了key到Value的映射。同时它也没有继承Collection。在Map中它保证了key与value之间的一一对应关系。也就是说一个key对应一个value,所以它不能存在相同的key值,当然value值可以相同。实现map的有:HashMap、TreeMap、HashTable、Properties、EnumMap。 4.1、HashMap 以哈希表数据结构实现,查找对象时通过哈希函数计算
Java帮帮
2018/03/15
1.2K0
【Java提高十八】Map接口集合详解
JAVA集合:TreeMap
TreeMap 存储 K-V 键值对,通过红黑树(R-B tree)实现。TreeMap 继承了 NavigableMap 接口,NavigableMap 接口继承了 SortedMap 接口,可支持一系列的导航定位以及导航操作的方法,当然只是提供了接口,需要 TreeMap 自己去实现;TreeMap 实现了 Cloneable 接口,可被克隆,实现了 Serializable 接口,可序列化;TreeMap 因为是通过红黑树实现,红黑树结构天然支持排序,默认情况下通过 Key 值的自然顺序进行排序。
栗筝i
2022/12/01
3950
JAVA集合:TreeMap
相关推荐
Java中 Treemap和 Treeset的使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档