Collection & Map 集合知识体系
Java 集合知识体系,包括 Collection 和 Map 基本工具类。常用的有:HashMap、ArrayList、LinkedList、Queue、Stack 以及 Set 集合。
菜鸡的挣扎
人生是公平的,得到了金钱必将失去烦恼
展开
-
侃晕面试官的 HashMap 源码分析 - 这真不是我吹
完全解析 JDK8 HashMap,扩容、红黑树、链表、树形转化,不是我吹,看了这篇,没几个面试官吹的过你,当然,这些东西貌似没啥用原创 2020-05-23 15:18:05 · 556 阅读 · 5 评论 -
WeakHashMap 源码简读 - 专注缓存特殊 Map
前言阅读 Java 版本为 1.8.0.25。WeakHashMap 是一个很特殊的集合类。在不对 WeakHashMap 进行任何操作的情况下,它的键值对也会被 GC 回收,因为它的 key 是弱引用。这种奇葩 Map 有啥用呢,其实在缓存情况下,还真有点用。源码位置先放上,因为这个类和 HashMap 其实类似,所有我觉得没必要特别仔细,知道特性就可以了:WeakHashMap 源码:https://github.com/qianwei4712/JDK1.8.0.25-read/blo原创 2020-09-03 22:26:14 · 169 阅读 · 0 评论 -
LRU缓存机制的最佳实现,LinkedHashMap 源码解析
在 LinkedHashMap 环境下,当链表达到某个指定长度,put 方法添加新节点时,移除最长没有访问的元素。具体的实现可以是,顺序添加组建链表,当访问某一个元素节点,将该节点移动至末尾,达到长度需要移除时,移除第一个元素节点原创 2020-08-20 08:41:39 · 299 阅读 · 0 评论 -
ArrayList 源码解析 - 我这样的小白都看得懂系列
阅读 Java 版本为 1.8.0.25。ArrayList 实现了 List 接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入 null 元素,底层通过数组实现原创 2020-03-17 22:31:44 · 532 阅读 · 0 评论 -
LinkedList 源码解析 - 读过源码估计这辈子都忘不了
阅读 Java 版本为 1.8.0.25。LinkedList 同时实现了List接口和Deque接口,也就是说它既可以看作一个顺序容器,又可以看作一个队列(Queue),同时又可以看作一个栈(Stack)。原创 2020-03-27 15:28:24 · 315 阅读 · 0 评论 -
PriorityQueue 优先队列 - VIP居然可以在Queue中插队
阅读 Java 版本为 1.8.0.25。PriorityQueue 即优先队列,也是一个非常重要的队列实现形式,通过堆实现。优先队列的作用是能保证每次取出的元素都是队列中权值最小的(...原创 2020-04-19 16:34:26 · 1192 阅读 · 0 评论 -
TreeMap 源码简读 - 排序树还是有使用场景的
TreeMap 源码阅读,与 HashMap基本类似,因此比较简要原创 2020-05-30 15:04:23 · 338 阅读 · 0 评论 -
Java 栈(Stack)和队列(Queue)的首选 - ArrayDeque
阅读 Java 版本为 1.8.0.25。栈(Stack) 和 队列(Queue) 应该是大家非常熟悉的数据结构了。Java 中有 栈(Stack) 的具体类, 队列(Queue) 只定义了接口,当然所有实现了这个接口的类都可以当作一个队列使用。原创 2020-04-09 11:07:35 · 4762 阅读 · 0 评论 -
Vector源码 - 原来JDK也不是完美的
阅读 Java 版本为 1.8.0.25。Vector 实现了 List 接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入 null 元素,底层通过Object 数组实现。Vector 与 ArrayList 基本相同,不过 Vector 一定程度上实现了...原创 2020-03-30 23:20:01 · 210 阅读 · 0 评论 -
HashSet 和 TreeSet - 适配器模式的应用
Set 的实现类重要的不多,而且源码也不复杂,甚至觉得没啥可讲的。这一篇就汇总贴一下源码注释吧,也不过多介绍了:HashSet、TreeSet原创 2020-05-30 16:26:33 · 335 阅读 · 0 评论