探析ArrayList源码

一. ArrayList字段
1. 默认初始容量DEFAULT_CAPACITY为10

在这里插入图片描述

2. Object数组,存放元素的地方

在这里插入图片描述

3. 当前ArrayList的大小

在这里插入图片描述

4. 空数组,容量为0

在这里插入图片描述

二.ArrayList构造器
1. 生成指定容量的ArrayList

在这里插入图片描述

2. 生成默认容量的ArrayList(开始容量为0,在第一次添加元素容量变为10)

在这里插入图片描述

三.ArrayList核心方法
1. add方法

在这里插入图片描述
其中,ensureCapacityInternal方法
在这里插入图片描述
calculateCapacity方法
在这里插入图片描述
ensureExplicitCapacity方法
在这里插入图片描述
grow方法
在这里插入图片描述

2. get方法

在这里插入图片描述

3. remove方法
remove方法主要查看remove(int index)与remove(Object o)这两个重载方法

remove(int index)方法
在这里插入图片描述
remove(Object o)方法
在这里插入图片描述

4. clear方法

在这里插入图片描述

5. contains方法

在这里插入图片描述
indexOf方法
在这里插入图片描述

6. iterator方法

在这里插入图片描述
其中Itr为ArrayList的内部类
在这里插入图片描述
Itr的hasNext与Next方法
在这里插入图片描述

四.小结

ArrayList是基于数组实现的容器类,当需扩容时,扩容为旧容量的1.5倍。由于ArrayList是基于数组实现,所以具有随机访问的特点,但是增加与删除操作比较耗时,因为需要平均移动一半的数组元素。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值