java集合
祥子_每周一更
这个作者很懒,什么都没留下…
展开
-
基于jdk1.8的Vector源码分析
Vector的特点 底层数据结构为数组 元素排列有序、可重复 线程安全的,synchronized关键字 Vector可以指定扩容因子,扩容大小为,当增长因子大于0时,则newCapacity = oldCapacity + capacityIncrement;当增长因子不大于0时,则newCapacity = oldCapacity +oldCapacity Vector的构造方法 // initialCapacity:初始化数组大小;capacityIncrement:增长因子 public Vec.原创 2020-05-30 09:25:43 · 92 阅读 · 0 评论 -
基于jdk1.8的HashSet源码分析
文章目录HashSet特点:成员变量 HashSet特点: 底层由HashMap支持 不能重复、无序 线程不安全 成员变量 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable { static final long serialVersionUID = -5024744406713321676L;原创 2020-05-30 09:24:38 · 97 阅读 · 0 评论 -
基于jdk1.8的HashMap源码分析
文章目录HashMap特点HashMap成员变量静态内部类(Hash桶存储的节点的数据结构)HashMap构造函数HashMap添加键值对关键步骤HashMap和HashTable的区别 HashMap特点 1.底层采用数组+链表+红黑树的数据结构; 2.key和value都允许为null;key不能重复 3.排列无序 4.线程不安全:java.util.Collections#synchronizedMap使HashMap具备线程安全的能力,或者使用ConcurrentHashMap; HashMap原创 2020-05-30 09:17:22 · 101 阅读 · 0 评论 -
基于jdk1.8的LinkedList的源码分析
基于jdk1.8的LinkedList的源码分析 LinkedList的特点 排列有序可重复 底层使用双向链表数据结构 查询速度慢,增删快 线程不安全 理解LinkedList主要需要理解几个概念: 首节点:只要指导首节点就可以根据首节点的下一个节点依此查找到其他节点。 尾节点:通过尾节点的上一个节点就可以依次查找到其他节点。 节点:节点包含上一个节点、节点元素、下一个节点;每一个节点需要保存上一个节点和下一个节点。对LinkedList的操作都是改变节点中上一个节点和下一个节点的指向。 Linke.原创 2020-05-23 21:08:53 · 133 阅读 · 0 评论 -
深入 理解ArrayList实现原理
文章目录基于jdk1.8的ArrayList原码分析ArrayList的成员变量ArrayList的构造方法ArrayList的扩容机制ArrayList的三种遍历方式ArrayList的remove(int index)方法 基于jdk1.8的ArrayList原码分析 ArrayList的特点: 底层数据结构为数组 元素排列有序、可重复、可以为null 线程不安全 元素查找快,增删慢 扩容大小为:原先数组大小乘以1.5 ArrayList的成员变量 public class ArrayLis原创 2020-05-23 20:41:41 · 224 阅读 · 0 评论