广告
返回顶部
首页 > 资讯 > 精选 >java TreeMap源码解析详解
  • 498
分享到

java TreeMap源码解析详解

javatreemap源码 2023-05-31 16:05:13 498人浏览 安东尼
摘要

java TreeMap源码解析详解 在介绍TreeMap之前,我们来了解一种数据结构:排序二叉树。相信学过数据结构的同学知道,这种结构的数据存储形式在查找的时候效率非常高。如图所示,这种数据结构是以二叉树为基础的,所有的左孩子的

java TreeMap源码解析详解

 在介绍TreeMap之前,我们来了解一种数据结构排序二叉树。相信学过数据结构的同学知道,这种结构的数据存储形式在查找的时候效率非常高。

java TreeMap源码解析详解

如图所示,这种数据结构是以二叉树为基础的,所有的左孩子的value值都是小于根结点的value值的,所有右孩子的value值都是大于根结点的。这样做的好处在于:如果需要按照键值查找数据元素,只要比较当前结点的value值即可(小于当前结点value值的,往左走,否则往右走),这种方式,每次可以减少一半的操作,所以效率比较高。在实现我们的TreeMap中,使用的是红黑树(一种优化了的二叉排序树)。

     一、TreeMap的超接口 

     TreeMap主要继承了类AbstractMap(一个对Map接口的实现类)和 NavigableMap(主要提供了对TreeMap的一些高级操作例如:返回第一个键或者返回小于某个键的视图等)。主要的一些操作有:put添加元素到集合中,remove根据键值或者value删除指定元素,get根据指定键值获取某个元素,containsValue查看是否包含某个指定的值,containsKey 查看是否包含某个指定的key数值等。

     二、构造函数 

           TreeMap 的构造函数主要有以下几种:

 private final Comparator<? super K> comparator;  public TreeMap() {comparator = null;}  public TreeMap(Comparator<? super K> comparator) {    this.comparator = comparator;  } 

--结束END--

本文标题: java TreeMap源码解析详解

本文链接: https://www.lsjlt.com/news/227103.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java TreeMap源码解析详解
    java TreeMap源码解析详解 在介绍TreeMap之前,我们来了解一种数据结构:排序二叉树。相信学过数据结构的同学知道,这种结构的数据存储形式在查找的时候效率非常高。如图所示,这种数据结构是以二叉树为基础的,所有的左孩子的...
    99+
    2023-05-31
    java treemap 源码
  • JDK集合源码之解析TreeMap(一)
    目录简介继承体系存储结构源码解析属性Entry内部类构造方法get(Object key)方法特性再回顾左旋右旋插入元素插入再平衡插入元素举例总结简介 TreeMap使用红黑树存储元...
    99+
    2022-11-12
  • JDK集合源码之解析TreeMap(二)
    目录删除元素删除再平衡删除元素举例二叉树的遍历TreeMap的遍历总结删除元素 删除元素本身比较简单,就是采用二叉树的删除规则。 如果删除的位置有两个叶子节点,则从其右子树...
    99+
    2022-11-12
  • Java源码解析之详解ImmutableMap
    一、案例场景 遇到过这样的场景,在定义一个static修饰的Map时,使用了大量的put()方法赋值,就类似这样—— public static final Map<St...
    99+
    2022-11-12
  • Java源码解析之详解ReentrantLock
    ReentrantLock ReentrantLock是一种可重入的互斥锁,它的行为和作用与关键字synchronized有些类似,在并发场景下可以让多个线程按照一定的顺序访问同一资...
    99+
    2022-11-12
  • TreeMap 详解
    概述 TreeMap 是 Java 中的一种集合类,它实现了 SortedMap 接口,可以根据键的自然顺序或者自定义顺序对元素进行排序,底层实现采用了红黑树(Red-Black Tree)的数据结构。TreeMap 中的元素是按照键的排序...
    99+
    2023-08-31
    java 数据结构 开发语言
  • Java基础之TreeMap详解
    目录一、写在前面二、定义三、成员变量四、内部类五、构造器六、成员方法一、写在前面 TreeMap的底层数据结构是红黑树,且TreeMap可以实现集合元素的排序。 所以TreeMap...
    99+
    2022-11-12
  • Java TreeMap源码是什么
    这篇文章主要介绍“Java TreeMap源码是什么”,在日常操作中,相信很多人在Java TreeMap源码是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java TreeMap源码是什么”的疑惑有所...
    99+
    2023-06-17
  • Java ConcurrentHashMap的源码分析详解
    目录概述ForwardingNode节点TreeNodeTreeBinSizeCtl初始化初始化流程查找插入扩容红黑树的读&写读操作写操作小结容器计数总结概述 Concurr...
    99+
    2023-03-02
    Java ConcurrentHashMap源码 Java ConcurrentHashMap
  • Java 详解Map集合之HashMap和TreeMap
    目录HashMap创建HashMap添加元素访问元素删除元素TreeMap创建TreeMap添加元素访问元素删除元素HashMap、TreeMap区别 Map接口储存一组成对的键-值...
    99+
    2022-11-13
  • Java OkHttp框架源码超详细解析
    目录一、自己的理解的OkHttp二、OkHttp的使用方法三、基本对象介绍1.OkHttpClient2.request3.Call4.RealCall5.AsyncCall6.Di...
    99+
    2022-11-13
    Java OkHttp框架 OkHttp源码 OkHttp框架
  • Reactcommit源码分析详解
    目录总览commitBeforeMutationEffectscommitMutationEffects插入 dom 节点获取父节点及插入位置判断当前节点是否为单节点在对应位置插入节...
    99+
    2022-11-13
    React commit React commit源码
  • OpenJDK源码解析之System.out.println详解
    目录一、前戏二、JVM源码分析三、坑?四、总结一、前戏 可能不少小伙伴习惯在代码中使用sout打印一些信息,就像这样: System.out.println("hello wor...
    99+
    2022-11-12
  • Java源码解析之HashMap的put、resize方法详解
    目录一、HashMap 简介二、源码分析2.1 继承和实现2.2 属性2.3 节点类型Node内部类2.4 红黑树的节点三、构造方法3.1 构造器13.2 构造器23.3 构造器33...
    99+
    2022-11-12
  • Java源码解析之ClassLoader
    目录一、前言二、java 中的 ClassLoader三、Android 中的 ClassLoader四、双亲委派机制五、源码分析一、前言 一个完整的Java应用程序,当程序在运行时...
    99+
    2022-11-12
  • Java源码解析之LinkedHashMap
    目录一、成员变量二、构造函数三、重要方法一、成员变量 先来看看存储元素的结构吧: static class Entry<K,V> extends HashMap.No...
    99+
    2022-11-12
  • Java源码解析之ConcurrentHashMap
    早期 ConcurrentHashMap,其实现是基于: 分离锁,也就是将内部进行分段(Segment),里面则是 HashEntry 的数组,和 HashMap 类似,哈...
    99+
    2022-11-12
  • java中CopyOnWriteArrayList源码解析
    目录简介继承体系源码解析属性构造方法add(E e)方法add(int index, E element)方法addIfAbsent(E e)方法get(int index)remo...
    99+
    2022-11-13
  • Java struts2请求源码分析案例详解
      Struts2是Struts社区和WebWork社区的共同成果,我们甚至可以说,Struts2是WebWork的升级版,他采用的正是WebWork的核心,所以,Struts2并不...
    99+
    2022-11-12
  • java集合类源码分析之Set详解
    Set集合与List一样,都是继承自Collection接口,常用的实现类有HashSet和TreeSet。值得注意的是,HashSet是通过HashMap来实现的而TreeSet是通过TreeMap来实现的,所以HashSet和TreeS...
    99+
    2023-05-31
    java 集合类源码 set
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作