啊哈哈哈,今天来说一下ArrayList的源码。
ArrayList是list的一种
在java.util包下
继承了AbstractList类,实现了RandomAccess, Cloneable, java.io.Serializable接口
当我们进这三个接口里面看的时候,发现这三个接口里面竟然一句代码没有。
那么为什么还要实现这三个接口呢?
是要起到一个标记的作用。
这三个接口说明支持随机访问,可以克隆,可序列化
还是老样子,看完实现的类和接口之后,我们来看看全局变量。
说明默认初始容量为10
elementData: 元素数据数组
size: 集合长度
最大数组长度是 Integer的最大值-8,我们知道Integer的最大值是2的31次方减1
判断集合是否存在,如果集合的长度为0,集合不存在
判断集合是否包含此元素,如果集合元素的下标大于0,则说明此元素存在
查找集合元素的位置,如果元素存在,返回元素的下标,如果元素不存在,返回-1
返回此元素最后一次出现在集合的位置
集合转数组
根据下标返回元素
修改元素
添加元素
移除某下标的元素
移除某元素
清空集合
添加集合中的全部元素
先带大家读到这里,源码里面并没有添加注释,以后有时间添加,我们不见不散