1、ArrayList的特点
| 存放的元素有序 |
|---|
| 元素不唯一(可以重复) |
| 随机访问快 |
| 插入删除元素慢 |
| 非线程安全 |
2、底层实现
底层初始化,使用一个Object类型的空对象数组,初始长度为0;
源码
//Object类型对象数组引用
transient Object[] elementData;
//默认空的Object数组
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
//实例化时,将Object类型对象数组引用 指向 默认空的Object数组
public ArrayList() {
this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
}
首次添加元素,自动进行扩容,默认扩充容量是10(数组的长度,也就是集合存放元素的个数);
源码
//如果是第一次添加元素
public boolean add(E e) {
//private int size; //size = 0;
//调用ensureCapacityInternal(int minCapacity)方法
ensureCapacityInternal(size + 1); // Increments modCount!!
elementData[size++] = e;

本文详细介绍了JAVA中ArrayList的特点,如底层初始化为空Object数组,首次添加元素时默认扩容为10。当数组容量不足时,会动态扩容,每次扩容为之前容量的1.5倍。还探讨了ArrayList的初始化、常用方法,包括添加、删除、获取元素等,并讨论了从数组转换为集合的方式。此外,文章还对比了线程安全的Vector与ArrayList的区别。
最低0.47元/天 解锁文章
1104

被折叠的 条评论
为什么被折叠?



