CopyOnWriteArrayList讲解
CopyOnWriteArrayList
CopyOnWrite容器:写时复制的容器。当我们往一个容器添加元素的时候,不直接往当前容器添加,而是先将当前容器进行Copy,复制出一个新的容器,然后新的容器里添加元素,添加完元素之后,再将原容器的引用指向新的容器。这样做的好处是我们可 ...
ArrayList添加和删除元素讲解
ArrayList添加和删除元素讲解
添加
先检查当前数组容量是否足够,足够的话直接在size位置添加元素,不够的话先扩容,再添加元素
删除12345678910111213public E remove(int index) { rangeCheck(index); ...
ArrayList两个空数组的作用
ArrayList两个空数组的作用
有参
12345678910public ArrayList(int initialCapacity) { if (initialCapacity > 0) { this.elementData = n ...
ArrayList扩容机制
ArrayList扩容机制
无参构造JDK7 new无参构造的ArrayList对象时,直接创建了长度是10的Object[]数组elementData 。jdk7中的ArrayList的对象的创建类似于单例的饿汉式
JDK8 以无参数构造方法创建 ArrayList 时,实际上初始化赋值 ...
ArrayList和Vector区别
ArrayList和Vector区别
ArrayList 是线程不安全的,Vector 是线程安全的(方法上加了synchronized)
ArrayList 使用默认构造器创建对象时是在调用 add() 方法时对 ArrayList 的默认容量进行初始化的,Vector 在 ...
Arraylist 与 LinkedList 区别
Arraylist 与 LinkedList 区别?
是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全;
底层数据结构: Arraylist 底层使用的是 Object 数组;LinkedList 底层使用的是 双向链表 数据结 ...