前言 HashMap 是无论在工作还是面试中都非常常见常考的数据结构。 比如 Leetcode 第一题 Two Sum 的某种变种的最优解就是需要用到 HashMap 的,高频考题 LRU Cache 是需要用到 LinkedHashMap 的。 HashMap 用起来很简单,底层实现也不复杂,先来 ...
分类:
其他好文 时间:
2020-06-20 14:13:27
阅读次数:
68
LRU的思路: ? 查找某个节点,如果该节点存在,则将它放到头部 ? 增加一个节点,如果不存在,将它添加到头部,如果此时超过了LRU的大小,则将最后一个节点删除;如果存在,就更新节点的value,然后放到头部。 实现方式可以用LinkedHashMap,也可以自己实现 LinkedHashMap: ...
分类:
其他好文 时间:
2020-05-22 21:32:56
阅读次数:
64
HashMap、LinkedHashMap HashMap 底层结构 数组 链表 当链表的长度大于等于 8 时,链表会转化成红黑树; 红黑树 当红黑树的大小小于等于 6 时,红黑树会转化成链表。 常见属性 主要操作 新增 链表的新增 链表的新增比较简单,就是把当前节点追加到链表的尾部,和 Linke ...
分类:
其他好文 时间:
2020-05-06 09:15:32
阅读次数:
68
[toc] 深入理解HashMap和LinkedHashMap的区别 简介 我们知道HashMap的变量顺序是不可预测的,这意味着便利的输出顺序并不一定和HashMap的插入顺序是一致的。这个特性通常会对我们的工作造成一定的困扰。为了实现这个功能,我们可以使用LinkedHashMap。 Linke ...
分类:
其他好文 时间:
2020-05-02 09:54:26
阅读次数:
41
简介 LinkedHashMap内部维护了一个双向链表,能保证元素按插入的顺序访问,也能以访问顺序访问,可以用来实现LRU缓存策略。 LinkedHashMap可以看成是 LinkedList + HashMap。 类图 LinkedHashMap继承HashMap,拥有HashMap的所有特性,并 ...
分类:
其他好文 时间:
2020-04-29 10:40:01
阅读次数:
52
leetcode 解法 https://blog.csdn.net/Apeopl/article/details/90137398 import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; public c ...
分类:
其他好文 时间:
2020-04-28 20:08:28
阅读次数:
58
背景 HashMap 是集合框架中最重要的类之一: LinkedHashMap 直接继承 HashMap ConcurrentHashMap 的实现就是 HashMap + 分段锁 HashSet 底层是 HashMap TreeMap 的红黑树在 HashMap 也有实现 JDK1.8 java. ...
分类:
其他好文 时间:
2020-04-26 11:03:24
阅读次数:
47
深入理解HashMap和LinkedHashMap的区别 我们知道HashMap的变量顺序是不可预测的,这意味着便利的输出顺序并不一定和HashMap的插入顺序是一致的。这个特性通常会对我们的工作造成一定的困扰。为了实现这个功能,我们可以使用LinkedHashMap。 LinkedHashMap详 ...
分类:
其他好文 时间:
2020-04-20 14:10:45
阅读次数:
73
mybatis缓存: 从数据查询数据时,会把结果放入缓存池。 在没有对这个表进行修改操作时,调用同一个方法时,相同查询语句会直接读取缓存池中的结果。 当缓存池满时,会把最近没有被使用的缓存中的数据覆盖掉。(LRU least recently used); 其中主要使用了linkedHashMap ...
分类:
编程语言 时间:
2020-04-13 12:33:39
阅读次数:
70
HashSet 是HashMap键的封装,我们都知道HashMap是数组+链表或数组+树结构,那么HashSet也是这种结构。HashMap只能存入一个null键,那么HashSet也就只能有一个null值;LinkedHashSet 是LinkedHashMap 键的封装,LinkedHashSe... ...
分类:
其他好文 时间:
2020-04-05 11:31:38
阅读次数:
64