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

请解释一下TreeMap?

作者头像
剑走天涯
发布于 2019-09-10 07:10:23
发布于 2019-09-10 07:10:23
4680
举报
文章被收录于专栏: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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
文心一言 VS 讯飞星火 VS chatgpt (176)-- 算法导论13.3 5题
要证明这个问题,我们首先需要理解红黑树的性质。红黑树是一种自平衡二叉搜索树,它在插入和删除操作中维护一些属性,以保证搜索、插入和删除操作的时间复杂性为O(log n)。红黑树的性质包括:
福大大架构师每日一题
2024/01/11
1510
文心一言 VS 讯飞星火 VS chatgpt (176)-- 算法导论13.3 5题
欢迎来到 TreeMap 的吐槽大会
吃饭间隙,迷上了《吐槽大会》,一集一集地刷啊,觉得这些嘉宾真的挺有勇气的,敢于直面自己的惨淡槽点。于是,同学们看到了,我作为一个技术博主,也受到了“传染”,不,受到了“熏陶”,本来这篇文章标题就想叫《TreeMap 指南》,是不是有点平淡无奇,没有槽点?于是我就想,不妨蹭点吐槽大会的热度吧,虽然吐槽大会现在也没什么热度了哈。
沉默王二
2020/08/31
5760
欢迎来到 TreeMap 的吐槽大会
文心一言 VS 讯飞星火 VS chatgpt (175)-- 算法导论13.3 4题
首先,我们需要明确RB-INSERT-FIXUP的功能和实现方式。RB-INSERT-FIXUP是在红黑树中插入元素时用来修复树的函数,其目标是保持红黑树的性质,确保树始终保持平衡。
福大大架构师每日一题
2024/01/11
1530
文心一言 VS 讯飞星火 VS chatgpt (175)-- 算法导论13.3 4题
文心一言 VS 讯飞星火 VS chatgpt (178)-- 算法导论13.4 1题
在证明 RB-DELETE-FIXUP 之后,树根一定是黑色的的过程中,我们首先需要理解红黑树的性质。红黑树是一种自平衡二叉搜索树,它的每个节点都有一个颜色属性,可以是红色或黑色。红黑树的性质包括:
福大大架构师每日一题
2024/01/18
1650
文心一言 VS 讯飞星火 VS chatgpt (178)-- 算法导论13.4 1题
Java中 Treemap和 Treeset的使用
首先要注意的是,本文章不涉及到红黑树的具体实现,也就是说不会逐行分析TreeMap和TreeSet的源码实现,因为红黑树看了也会忘的…
呼延十
2019/07/01
1.3K0
【Java基础】HashMap、TreeMap、都用了红黑树
昨天模拟面试,面试官问到了 哈希map 和 treeMap 我说都是使用了 红黑树 问我有什么区别 还有复杂度 稍微一深入讨论 我就废掉了 先亡羊补牢一下
韩旭051
2021/04/14
4710
【Java基础】HashMap、TreeMap、都用了红黑树
Java集合深度解析之TreeMap
红黑树简介 TreeMap是基于红黑树实现的,这里只对红黑树做个简单的介绍,红黑树是一种特殊的二叉排序树,红黑树通过一些限制,使其不会出现二叉树排序树中极端的一边倒的情况,相对二叉排序树而言,这自然提
互扯程序
2018/03/26
8090
Java集合深度解析之TreeMap
TreeMap源码分析,看了都说好
TreeMap也是Map接口的实现类,它最大的特点是迭代有序,默认是按照key值升序迭代(当然也可以设置成降序)。在前面的文章中讲过LinkedHashMap也是迭代有序的,不过是按插入顺序或访问顺序,这与TreeMap需要区分开来。TreeMap内部用红黑树存储数据,而不是像HashMap、LinkedHashMap、WeakHashMap一样使用哈希表来存储。
李红
2019/09/10
4760
TreeMap源码分析,看了都说好
java各种集合类区别
集合接口分为:Collection和Map,list、set实现了Collection接口
全栈程序员站长
2022/06/27
5590
java各种集合类区别
文心一言 VS 讯飞星火 VS chatgpt (164)-- 算法导论13.1 4题
每个节点或是红色,或是黑色。 根节点是黑色。 每个叶节点(NIL或空节点)是黑色。 如果一个节点是红色的,则它的两个子节点都是黑色的。 从任一节点到其每个叶节点的所有路径都包含相同数目的黑色节点。 假设我们将红黑树中的每个红结点“吸收”到它的黑色父结点中,这意味着红结点的子结点将变成黑色父结点的子结点。由于红黑树的性质,我们知道红结点的子节点都是黑色的。
福大大架构师每日一题
2023/12/27
1310
文心一言 VS 讯飞星火 VS chatgpt (164)-- 算法导论13.1 4题
Java中的数据结构(一):为什么是红黑树
这段时间在重新复习一些Java基础知识,看到HashMap在1.8的改进中增加了红黑树,不经产生了一个疑问:为什么是红黑树?同样是二叉树,为什么红黑树能这么优秀?
闲宇非鱼
2022/02/08
4290
Java中的数据结构(一):为什么是红黑树
Java TreeMap 源码解析
可以看到,相比HashMap来说,TreeMap多继承了一个接口NavigableMap,也就是这个接口,决定了TreeMap与HashMap的不同:
哲洛不闹
2018/09/19
4150
Java TreeMap 源码解析
文心一言 VS 讯飞星火 VS chatgpt (163)-- 算法导论13.1 3题
是的,如果将一棵根结点为红色的松弛红黑树的根结点标为黑色,而其他都不变,所得到的是一棵红黑树。
福大大架构师每日一题
2023/12/27
1580
文心一言 VS 讯飞星火 VS chatgpt (163)-- 算法导论13.1 3题
TreeMap源码解析
红黑树 就是一种平衡的二叉查找树,说他平衡的意思是他不会变成“瘸子”,左腿特别长或者右腿特别长。除了符合二叉查找树的特性之外,还具体下列的特性:
103style
2022/12/19
3940
TreeMap源码解析
死磕 java集合之TreeMap源码分析(一)- 内含红黑树分析全过程
TreeMap实现了Map、SortedMap、NavigableMap、Cloneable、Serializable等接口。
彤哥
2019/07/08
3300
死磕 java集合之TreeMap源码分析(一)- 内含红黑树分析全过程
Java集合,TreeMap底层实现和原理
文章的内容基于JDK1.7进行分析,之所以选用这个版本,是因为1.8的有些类做了改动,增加了阅读的难度,虽然是1.7,但是对于1.8做了重大改动的内容,文章也会进行说明。
用户6182664
2019/10/17
1.2K0
Java集合,TreeMap底层实现和原理
【JDK1.8】JDK1.8集合源码阅读——TreeMap(二)
一、前言 在前一篇博客中,我们对TreeMap的继承关系进行了分析,在这一篇里,我们将分析TreeMap的数据结构,深入理解它的排序能力是如何实现的。这一节要有一定的数据结构基础,在阅读下面的之前,推
joemsu
2018/05/17
8660
Java面试集锦(一)之Java集合
1. List:有序、可重复。可以通过索引快速查找,但进行增删操作时后续的数据需要移动,所以增删速度慢。
凯哥Java
2022/12/16
4520
Java面试集锦(一)之Java集合
算法:树和图-理论
我们用过链表会发现,我们要想在链表中搜索或者访问一个元素时特别麻烦的,时间时间复杂度是O(N)的,为什么搜索和访问那么慢呢?? 我们仔细一想
营琪
2019/11/04
1.1K0
Java中Map接口的解析
Map<String, String> map = new HashMap<String, String>();
全栈程序员站长
2022/09/08
7160
相关推荐
文心一言 VS 讯飞星火 VS chatgpt (176)-- 算法导论13.3 5题
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档