![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
源码解析
充电鱼
这个作者很懒,什么都没留下…
展开
-
HashMap源码学习
数据结构HashMap采用的是数据加链表, jdk1.8以后链表长度大于8时会转变为红黑树, 结构如下在写入数据时, 首先通过hashcode找到数组位置, 位置上没数据, 直接写入. 有数据则向下找链表内空余位置写入.构造器public HashMap(int initialCapacity, float loadFactor) { if (initialCapacity < 0) throw new IllegalArgumentException原创 2020-08-26 20:27:07 · 121 阅读 · 0 评论 -
LinkedList源码分析
链表LinkedList底层使用链表进行存储数据。链表分为单向链表和双向链表,单向链表只会保存下一个节点的地址,双向链表则保存前后两个节点的地址信息。因此在查找时单向链表只能由头至尾查找双向链表则可以双向查找。LinkedList使用的是一个内部类来表示节点private static class Node<E> { E item; Node<E> next; Node<E> prev; Node原创 2020-07-08 20:14:18 · 89 阅读 · 0 评论 -
ArrayList源码解析
ArrayList底层使用数组进行存储数据,具有查询速度快、读写速度慢的特性。addpublic boolean add(E e) { //确保数组空间足够 ensureCapacityInternal(size + 1); //默认插入数组最后方 elementData[size++] = e; return true;} private void ensureExplicitCapacity(int minCapacity.原创 2020-07-08 18:29:39 · 118 阅读 · 0 评论