TreeMap的实现是红黑树算法的实现,所以要了解TreeMap就必须对红黑树有一定的了解,其实这篇博文的名字叫做:根据红黑树的算法来分析TreeMap的实现,但是为了与Java提高篇系列博文保持一致还是叫做TreeMap比较好。通过这篇博文你可以获得如下知识点: 1、红黑树的基本概念。 &nb
一、TreeMap 类概述有序状态。红黑树结构存储数据 3、TreeMap 的 Key 的排序:自然排序:TreeMap 的所有的 Key 必须实现 Comparable 接口,而且所有的 Key 应该是同一个类的对象,否则将会抛出 ClasssCastException定制排序:创建 TreeMap 时,传入一个 Comparator 对象,该对象负责对TreeMap 中的所有 key 进行排
转载
2024-01-11 20:31:51
42阅读
TreeMap 按照 Key 的排序结果来组织内部结构的Map类集合,它改变了Map类散乱无序的形象。虽然TreeMap没有ConcurrentHashMap 和 HashMap 普及,但是在Key有排序的要求的场景下,使用 TreeMap 可以事半功倍。在集合框架如中,他们都继承AbstractMap 抽象类,TreeMap 与 HashMap 、ConcurrentHashMap 的类图关系如
转载
2024-04-16 09:46:18
154阅读
常见的数据结构有数组、链表,还有一种结构也很常见,那就是树。前面介绍的集合类有基于数组的ArrayList,有基于链表的LinkedList,还有链表和数组结合的HashMap,今天介绍基于树的TreeMap。 TreeMap基于红黑树实现的。查看“键”或“键值对”时,它们会被排序(次序由Comparable或Comparator决定)。TreeMap的特点在
转载
2023-07-20 22:17:34
54阅读
【java集合】TreeMap集合1、特点1)TreeMap特点和hashmap类似,使用也类似。key不能重复 2)TreeMap底层用红黑树维护大小结构 3)使用时一定要提供比较器,否则会抛出异常2、使用场景1)如果需要维护key—value结构的大小顺序可以选择TreeMap 2)根据key排序3、时间复杂度时间复杂度:O(log2 n)4、代码主要写了如何使用外比较器和内比较器 1)内比较
转载
2023-09-27 07:18:03
106阅读
TreeMap基于红黑树原理实现。文章参考自博客,仅供学习之用。谢谢博主分享。一、红黑树红黑树又称红-黑二叉树,它首先是一颗二叉树,它具有二叉树的全部特性。同时红黑树更是一颗自平衡的排序二叉树。平衡二叉树性质:是一颗空树或者它的左右两个子树的深度之差不超过1.红黑树有以下性质: 1 每个结点必须为红或者黑; &nbs
转载
2024-05-16 14:31:59
23阅读
Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。1 HashmapHashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以
转载
2024-02-16 10:15:17
28阅读
一、概念 TreeMap是基于红黑树结构实现的一种Map,要分析TreeMap的实现首先就要对红黑树有所了解。要了解什么是红黑树,就要了解它的存在主要是为了解决什么问题,对比其他数据结构比如数组,链表,Hash表等树这种结构又有什么优点。1.二叉查询树、红黑树介绍、1.数组,优点:(1)随机访问效率高(根据下标查询),(2)搜索效率较高(可使用折半方法)。缺点:(1)内存连续且固定,存储效率低。(
转载
2024-08-19 08:36:34
53阅读
Map类集合存储单位是KV键值对,Map类就是使用一定的哈希算法形成一组比较均匀的的哈希值作为Key,Value值挂在Key上。 Map类的特点如下:Map取代旧的抽象类Dictionary,拥有更好的性能。没有重复的Key,可以有重复的ValueValue可以是List、Map、Set类对象KV是否允许为null,以实现类约束为准TreeMapTreeMap是按照Key的排序结果组织内部结构的M
转载
2023-10-19 12:45:20
51阅读
Map的单元是对键值对的处理,之前分析过的两种Map,HashMap和LinkedHashMap都是用哈希值去寻找我们想要的键值对,优点是理想情况下O(1)的查找速度。 那如果我们在一个对查找性能要求不那么高,反而对有序性要求比较高的应用场景呢?这个时候HashMap就不再适用了,我们需要一种新的Map,在JDK中提供了一个接口:SortedMap,我想分析一下具体的实现中的一种:TreeM
转载
2023-10-27 12:46:43
59阅读
Map的单元是对键值对的处理,之前分析过的两种Map,HashMap和LinkedHashMap都是用哈希值去寻找我们想要的键值对,优点是由O(1)的查找速度。那如果我们在一个对查找性能要求不那么高,反而对有序性要求比较高的应用场景呢?这个时候HashMap就不再适用了,我们需要一种新的Map,在JDK中提供了一个接口:SortedMap,我想分析一下具体的实现中的一种:TreeMap.HahMa
转载
2023-10-09 06:43:23
57阅读
TreeMap的特点TreeMap基于红黑树实现红黑树是一种弱平衡的二叉树,比AVL树旋转次数少,用弱平衡换取旋转次数有5个性质:性质1. 节点是红色或黑色。性质2. 根节点是黑色。性质3 每个叶节点(NIL节点,空节点)是黑色的。性质4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)性质5. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。特性
转载
2023-10-17 09:28:17
33阅读
TreeMap简介在Map集合框架中,除了HashMap以外,TreeMap也是常用到的集合对象之一。 与HashMap相比,TreeMap是一个能比较元素大小的Map集合,会对传入的key进行了大小排序。其中,可以使用元素的自然顺序,也可以使用集合中自定义的比较器来进行排序; 不同于HashMap的哈希映射,TreeMap实现了红黑树的结构,形成了一颗二叉树。 TreeMap继承于Abstrac
转载
2024-02-29 09:26:01
57阅读
这篇博客记录了学习TreeMap时关于put()方法和遍历TreeMap的解析,方便巩固学习,仅作参考。 TreeMap<String, String> treeMap = new TreeMap<>() ;
String str1 = "12";
String str2 = "123";
String str3 = "1234";
treeMap.put(str
转载
2024-03-29 17:00:37
34阅读
①对TreeMap有个整体认识TreeMap是一个有序的key-value集合,它是通过红黑树实现的。TreeMap继承于AbstractMap,所以它是一个Map,即key-value集合。TreeMap实现了NavigableMap接口,意味着它支持一系列的导航方法。比如返回有序的key集合。TreeMap实现了Clonable接口,意味着它能被克隆。TreeMap实现了java.io.Ser
转载
2024-04-15 17:53:08
29阅读
TreeSet与TreeMap的关系:1.TreeSet 实际上就是用TreeMap来组织数据的,因为在TreeSet中保存了一个NavigableMap<e,Object>接口实例变量,而该接口的实现类就是TreeMap2.TreeSet与TreeMap都是用二叉树的数据结构来存储数据3.TreeSet和TreeMap中保存的数据除了Integer和String等有默认顺序的类型外的
转载
2024-07-17 12:29:18
25阅读
Java数据结构和算法(十九) -- TreeMap
1、简介 TreeMap 是 Map 集合的有序实现,其底层是基于红黑树的实现,能够早 log(n) 时间内完成 get、put 和 remove 操作。TreeMap 继承自 AbstractMap,还实现了 NavigableMap接口。NavigableMap 接口继承了SortedM
转载
2024-07-17 17:53:02
55阅读
如果我们需要一个有序的Map,我们会使用TreeMap进行存储。TreeMap默认是按照key值升序进行排序的,如数字、ASCII。 如果我们需要对TreeMap按值进行排序的话,可以实例化Comparator接口,在TreeMap的构造方法中当作参数传入。这里遇到了问题:当插入TreeMap的两条数据value值一样的时候,后一条数据会覆盖前一条数据。 通过查资料发现,原因是实例化Compa
转载
2023-07-23 15:44:41
241阅读
1 前言本人使用的是jdk1.8版本。2 Map集合继承结构3 底层原理TreeMap底层使用红黑树的结构进行数据的增删改查,红黑树是一种自平衡的二叉查找树,想了解红黑树推荐看看这篇博文:30张图带你彻底理解红黑树。学过数据结构的都知道二叉查找树是一种有序树,即进行中序遍历可以得到一组有序序列,所以TreeMap也是有序的Map集合。在红黑树的加持下,TreeMap的众多方法,如:contains
转载
2023-07-17 14:26:43
73阅读
前言上一章的HashMap并没有提到红黑树,就是因为本章的TreeMap就是一棵红黑树。TreeMap是存储键值对(key-value结构)的自平衡二叉树,又称红黑树。TreeMap的key是有序且不可为空的,但是value是可以为空的。TreeMap的类图结构如下 TreeMap类上的注释有两个地方需要注意: 1.TreeMap是一个基于NavigableMap实现的红黑树,TreeMap的排序
转载
2023-07-15 13:48:08
93阅读