啊哈哈哈,今天来说一下ArrayList的源码。
ArrayList是list的一种
在java.util包下
继承了AbstractList类,实现了RandomAccess, Cloneable, java.io.Serializable接口
当我们进这三个接口里面看的时候,发现这三个接口里面竟然一句代码没有。
那么为什么还要实现这三个接口呢?
是要起到一个标记的作用。
这三个接口说明支持随机访问,可以克隆,可序列化
还是老样子,看完实现的类和接口之后,我们来看看全局变量。

说明默认初始容量为10

elementData: 元素数据数组
size: 集合长度

最大数组长度是 Integer的最大值-8,我们知道Integer的最大值是2的31次方减1

判断集合是否存在,如果集合的长度为0,集合不存在

判断集合是否包含此元素,如果集合元素的下标大于0,则说明此元素存在

查找集合元素的位置,如果元素存在,返回元素的下标,如果元素不存在,返回-1
返回此元素最后一次出现在集合的位置

集合转数组

根据下标返回元素

修改元素

添加元素

移除某下标的元素

移除某元素

清空集合

添加集合中的全部元素
先带大家读到这里,源码里面并没有添加注释,以后有时间添加,我们不见不散
4994

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



