ArrayLIst在指定位置插入的内部实现

数据库105

今天看到一个问题:ArrayList的add方法有两种使用,那么add到指定位置内部是怎么实现的?

发现自己对这块地方不熟悉,所以立马去看了ArrayList下的源码

```java
// 第一个
public boolean add(E var1) {
this.ensureCapacityInternal(this.size + 1);
this.elementData[this.size++] = var1;
return true;
}

// 第二个
public void add(int var1, E var2) {
// 判断插入位置是否在[0,size)内
this.rangeCheckForAdd(var1);
// 检查数组容量大小,不够则进行扩容(扩容因子为1.5)
this.ensureCapacityInternal(this.size + 1);
// native修饰方法,在JVM由c语言执行
System.arraycopy(this.elementData, var1, this.elementData, var1 + 1, this.size - var1);

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长