![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
java集合
文章平均质量分 53
java集合常用的一些类
老奔币
这个作者很懒,什么都没留下…
展开
-
LinkedHashMap(JDK1.8)源码分析
1 LinkedHashMap添加源码 LinkedHashMap继承HashMap,添加方法继承了父类 LinkedHashMap只重写了newNode()方法,只需要关注newNode()方法怎么重写 与HashMap比较,只多了一个linkNodeLast方法,关注linkNodeLast(entry)方法即可 红黑树的重写 这里使用双向链表将所有的Node节点串联,所以LinkedHashMap是有序的,添加代码大致如此。 2获取元素源码 LinkedHa..原创 2021-02-03 22:02:09 · 74 阅读 · 0 评论 -
LinkedList源码分析
LinkedList为双向链表,实现List和Deque接口,非同步容器。适合顺序遍历以及增删多的场景,不适用于快查特定元素。 1 LinkedList怎么实现双向链表、 没错 这就是双向链表 2 新增节点 3 删除节点 ...原创 2021-02-01 22:40:45 · 78 阅读 · 0 评论 -
ArrayList的扩容机制和删除方法源码解析
ArrayList的扩容机制 private void ensureExplicitCapacity(int minCapacity) { modCount++; //某种操作后 容器容量大小大于阈值 扩容 if (minCapacity - elementData.length > 0) grow(minCapacity); } private void grow(int minCapacity) { ...原创 2021-01-27 16:16:39 · 154 阅读 · 0 评论 -
HashMap
1初始化变量 默认初始化容量 2的幂次方 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 最大容量 int 32位 去除一位符号位 左移30位 即最大 static final int MAXIMUM_CAPACITY = 1 << 30; 现有容器已用数量与容器大小之比达到0.75,扩容 static final float DEFAULT_LOAD_FACTOR = 0.75f; 单个节点链表转化.原创 2021-01-26 22:05:48 · 46 阅读 · 0 评论