集合源码之ArrayList源码分析

啊哈哈哈,今天来说一下ArrayList的源码。

 

ArrayList是list的一种

在java.util包下

继承了AbstractList类,实现了RandomAccess, Cloneable, java.io.Serializable接口

当我们进这三个接口里面看的时候,发现这三个接口里面竟然一句代码没有。

那么为什么还要实现这三个接口呢?

是要起到一个标记的作用。

这三个接口说明支持随机访问,可以克隆,可序列化

 

还是老样子,看完实现的类和接口之后,我们来看看全局变量。

说明默认初始容量为10

 

elementData: 元素数据数组

size: 集合长度

 

 

 

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

 

 

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

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

查找集合元素的位置,如果元素存在,返回元素的下标,如果元素不存在,返回-1

返回此元素最后一次出现在集合的位置

集合转数组

根据下标返回元素

修改元素

添加元素

移除某下标的元素

移除某元素

清空集合

添加集合中的全部元素

 

先带大家读到这里,源码里面并没有添加注释,以后有时间添加,我们不见不散

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值