首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JDK容器学习之Map: HashMap,TreeMap,LinkedHashMap对比小结

HashMap, TreeMap, LinkedHashMap 对比 1....存储结构 HashMap 存储结构: 数组 + 链表 + 红黑树 LinkedHashMap 存储结构 和HashMap 相同,区别是维护一个根据插入顺序保持的双向链表 TreeMap 存储结构: 红黑树...是否有序 HashMap 无序 LinkedHashMap 根据插入先后顺序确定遍历顺序 TreeMap 有序,根据Key进行比较获取先后顺序 3....应用场景&使用小建议 HashMap, LinkedHashMap, TreeMap 非线程安全,因此都不适用于多线程环境下 希望有序的Map,考虑采用 LinkedHashMap, TreeMap...(一) : 底层数据结构 JDK容器学习之TreeMap (二) : 使用说明 JDK容器学习之LinkedHashMap (一):底层存储结构分析 JDK容器学习之LinkedHashMap(二):

859100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    深入浅出 Map 的实现(HashMap、HashTable、LinkedHashMapTreeMap

    1、基本介绍 HashMap、TreeMap、HashTable、LinkedHashMap 共同实现了接口java.util.Map, 都是键值对形式,且map的key不允许重复 2、详细介绍 a...对于LinkedHashMap而言,它继承HashMap、底层使用哈希表双向链表来保存所有元素。其基本操作父类HashMap相似,它通过重写父类相关的方法,来实现自己的链接列表特性。...的遍历速度和他的容量有关 d、TreeMap TreeMap实现SortMap接口,能够把它保存的记录根据键排序,默认是按键值的升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap...进行降序排序,这点是LinkedHashMap不能实现的 具体代码如下: //默认的TreeMap升序排列 Map map1 = new TreeMap...那么使用LinkedHashMap吧,怎么用怎么爽 4、如果需要让Map按照key进行升序或者降序排序,那就用TreeMap吧 Map集合强大之处还需要各位的挖掘,如有说错的地方,还望大家指正,如有补充

    64840

    理解LinkedHashMap

    LinkedHashMap概述: LinkedHashMap是HashMap的一个子类,它保留插入的顺序,如果需要输出的顺序和输入时的相同,那么就选用LinkedHashMap。...LinkedHashMap实现HashMap的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序,该迭代顺序可以是插入顺序或者是访问顺序。...LinkedHashMap的实现: 对于LinkedHashMap而言,它继承HashMap、底层使用哈希表双向链表来保存所有元素。...其基本操作父类HashMap相似,它通过重写父类相关的方法,来实现自己的链接列表特性。...如果你想构造一个LinkedHashMap,并打算按从近期访问最少到近期访问最多的顺序(即访问顺序)来保存元素,那么请使用下面的构造方法构造LinkedHashMap: public LinkedHashMap

    55610

    LinkedHashMap 源码分析

    简单说明一下这个问题(水平有限,不保证完全正确),这里这么做确实会浪费空间,但 TreeNode 通过继承获取的组成链表的能力相比,这点浪费是值得的。...但在 HashMap 中,put 方法插入的是 HashMap 内部类 Node 类型的节点,该类型的节点并不具备 LinkedHashMap 内部类 Entry 及其子类型节点组成链表的能力。...3.2 链表节点的删除过程 插入操作一样,LinkedHashMap 删除操作相关的代码也是直接用父类的实现。...在 Java 集合框架中,HashMap、LinkedHashMapTreeMap 三个映射类基于不同的数据结构,并实现了不同的功能。...LinkedHashMap 在其之上,通过维护一条双向链表,实现了散列数据结构的有序遍历。TreeMap 底层基于红黑树实现,利用红黑树的性质,实现了键值对排序功能。

    55230

    LinkedHashMap源码解析

    转载请以链接形式标明出处: 本文出自:103style的博客 base on jdk_1.8.0_77 目录 LinkedHashMap简介 LinkedHashMap的全局变量介绍 LinkedHashMap...的构造函数 LinkedHashMap重写的函数 小结 参考文章 ---- LinkedHashMap简介 HashMap 是无序的,HashMap 在 put 的时候是根据 key 的 hashcode...class LinkedHashMap extends HashMap implements Map LinkedHashMap 是 HashMap 的子类。...它保留插入的顺序,如果需要输出的顺序和输入时的相同,那么就选用 LinkedHashMapLinkedHashMap 是 Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序。...LinkedHashMap 实现 HashMap 的不同之处在于,LinkedHashMap 维护着一个运行于所有条目的 双重链接列表。

    19720

    TreeMap详解:Java 有序 Map 原理实现

    三连即是对作者我写作道路上最好的鼓励支持!   如下是Java集合体系架构图,近期几期内容都是围绕该体系进行知识讲解,以便于同学们学习Java集合篇知识能够系统化而不零散。...通过对TreeMap的学习,读者可以了解到TreeMap的特点和使用方法,以及它与其他Map实现的不同之处。...TreeMap中的键值对是按照键的自然顺序或者指定的比较器顺序进行排序的。因此,TreeMap具有查找和排序的功能。...优缺点分析 优点 TreeMap能够实现对键值对的排序和查找; TreeMap基于红黑树实现,保证操作的时间复杂度为O(log n); TreeMap支持键的自然顺序或者自定义比较器顺序。...在这两个方法中,首先将要旋转的节点的子节点先保存起来,然后更新节点的子节点和父节点,并将要旋转的节点的子节点父节点相连。最后,将要旋转的节点与其左右子节点中的另一个节点相连,以完成旋转操作。

    89241

    【Java 基础篇】Java Map 详解

    本文将详细介绍Java中的Map接口及其常见实现类,包括HashMap、TreeMapLinkedHashMap,并提供一些示例代码。...TreeMap:基于红黑树实现,可以对键进行排序,并提供了一系列排序相关的方法,适用于需要对键进行排序的场景。...三、TreeMap TreeMap是Map接口的另一个常见实现类,它基于红黑树实现,可以对键进行排序,并提供了一系列排序相关的方法。...最后,我们检查LinkedHashMap中是否包含特定的键。 总结 在本文中,我们详细介绍了Java中的Map接口及其常见实现类:HashMap、TreeMapLinkedHashMap。...HashMap适用于需要快速查找和插入键值对的场景,TreeMap适用于需要对键进行排序的场景,而LinkedHashMap适用于需要保持插入顺序的场景。

    20810

    TreeMap源码解析

    现在我们已经知道了有关红黑树的所有知识,下面我们分析一下TreeMap的底层源码,看TreeMap底层是怎么实现红黑树的逻辑的。我们还是和其它集合一样还是先看TreeMap的初始化。 ? ?...上面是TreeMap的无参构造函数,我们发现当我们通过参构造函数创建TreeMap对象时,并不会执行底层树结构的初始化,而只是将comparator设置为空。...那么通过我们以往分析其它集合时总结的规律,TreeMap的初始化一定是在第一次调用put方法时执行的。下面我们将重点看一下TreeMap中的put方法。 ? ? ? ? ?...总结 在TreeMap中不允许用null做为key保存到TreeMap集合中 我们在分析源码时并没有发现同步关键字synchronized,这就说明TreeMap也不是一个线程安全的集合类 我们在分析源码时知道...TreeMap每次都添加元素时都会进行key的比较,所以我们在使用TreeMap集合是必须保证存储在TreeMap中的元素是可以比较的,否则虚拟机会直接抛出一场。

    52320
    领券