ArrayList

ArrayList结构

这里写图片描述
这里写图片描述

SubList是一个内部类,同样继承了AbstractList
sublist由外部类支持,所有非结构性的操作,返回是相同的,结构性的操作即改变大小的操作将会导致不确定。比如Array List的remove操作,会改变size属性和modCount属性,SubList的remove操作会调用ArrayList的remove操作,并用ArrayList的modCount给本身的modCount赋值,但ArrayList并不会主动操作sublist的属性,如果在有了sublist实例之后操作了ArrayList的大小,会导致sublist的modCount属性和ArrayList的modCount不一致,则sublist实例会不可用,因为他们都是fast-fail的。

迭代器Itr继承自Iterator,有
int cursor; // index of next element to return
int lastRet = -1; // index of last element returned; -1 if no such
int expectedModCount = modCount;
可以看出迭代器也是快速失败的。
cursor初始为零,next()返回的就cursor当前指的值,然后会使cursor+1;所以cursor会返回下一个元素的索引。lastRet总是比cursor小1,next()函数中返回的其实是elementData[lastRet=i=cursor].

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值