![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
集合
文章平均质量分 75
业精勤而荒嬉
知其然知其所以然
展开
-
TreeMap
需要先了解红黑树,这是之前分析红黑树的文章。 之前在分析红黑树时,我认为红黑树=二叉查找树+红黑平衡,关于二叉查找树这是递归版本的,而在TreeMap中实现的是非递归版本的。 TreeMap的继承关系: 关于SortedMap,NavigableMap get与put操作都很简单,注意TreeMap不允许键为null,对TreeMap来说comparator不为null则利用该比较...原创 2018-07-05 13:52:00 · 2375 阅读 · 0 评论 -
LinkedHashMap源码解析(JDK8)
public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V> LinkedHashMap 继承自 HashMap,在 HashMap 基础上,维护一条双向链表,保持遍历顺序和插入顺序一致。除此之外,LinkedHashMap 对访问顺序也提供了相关支持。在一些场景下,该特性很有...原创 2018-07-03 05:22:00 · 991 阅读 · 0 评论 -
HashMap源码解析
HashMap系列文章: 红黑树 HashMap源码解析-红黑树操作 LinkedHashMap源码解析(JDK8) HashMap底层数据结构:散列表+红黑树。关于散列表,采用拉链法处理hsah冲突,引入红黑树来提升效率。 数组+链表+红黑树 上图就是一个Node数组transient Node<K,V>[] table;每个黑点就是个Node ...原创 2018-05-22 00:12:00 · 404 阅读 · 0 评论 -
Map与AbstractMap
map是什么?键值对,key-value映射就是map。我们从三个角度分析:keyset,values,Entry。 keyset keyset是键key的Set集合,可以看出对于键map是不允许重复的,所以需要重写equals,hashCode方法,来保证正确的相等性比较。通过Map.keySet() 获取。 values values是值Value的C...原创 2018-05-21 18:44:00 · 736 阅读 · 0 评论 -
HashMap的computeIfAbsent与computeIfPresent
LeetCode:49 Given an array of strings, group anagrams together. Example: Input: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”], Output: [ [“ate”,”eat”,”tea”], [“nat”,”tan”], [“bat”] ] Note...原创 2018-08-25 20:58:12 · 5511 阅读 · 0 评论 -
HashMap源码解析-红黑树操作
距离上一篇分析HashMap的文章已经过去一年了,今天偶尔翻到之前的那篇,还记得当时是打算另起一篇来分析链表的树化,以及树的链表化过程,结果这一拖就是一年原创 2019-06-23 10:58:56 · 1105 阅读 · 1 评论