JAVA——底层源码阅读——集合ArrayList的实现底层源码分析
- 当前 jdk版本:jdk1.8.0_74
一、提出问题
集合ArrayList的底层原理是什么,它的增删改查是怎么实现的,为什么它的长度是可变的?
二、查看ArrayList源码
步骤1、新建java文件,把代码敲上去如下
public class Test {
public static void main(String[] args) {
ArrayList arrayList = new ArrayList();
arrayList.add("hello");
arrayList.add("world");
arrayList.remove(0);
arrayList.set(0, "世界");
arrayList.get(0);
System.out.println(arrayList);
}
}
步骤2、查看源码。
如何查看之前文章中已有详细步骤,不再赘述,以下直接展示具体源码。
1、增add()
2、删remove()
3、改set()
4、查get()
步骤3、阅读和分析源码。
1、增add()
如下所示,add()方法中一共有三行代码:
第一行是调用了ensureCapacityInternal方法;
第二行是往数组elementData的第size++位置下标增加值e;
第三行是返回一个true;
public boolean add(E e) {
ensureCapacityInternal(size + 1); // Increments modCount!!
elementData[size++] = e;
return true;
}
由第二行可知,集合ArrayList的底层原理是依赖于数组Array的,接下来从第一行开始分析代码的实现过程。
(1)点击跳转到ensureCapacityInternal()方法