源码阅读List

源码阅读-JDK list(一)

在这里插入图片描述
首先查看List接口的上下继承关系。

查看第一个方法:
在这里插入图片描述
1.通过其实现类来学习这个方法:
在这里插入图片描述
实现类方法很多,首先通过常用的arrayList来学size()方法
在这里插入图片描述
arraylist中返回的是这个size属性值
在arraylist发生crud的时候会对这个值进行同步修改。
**1.在这里插入图片描述
**add方法,调用重载的add方法,传入添加的新元素,当前数组引用,当前数组长度,
然后通过grow()方法后添加元素,然后容量 size=s+1,自增。
2.remove(int index)
在这里插入图片描述
这个方法并没有改变size的大小,通过fastRemove方法快速删除目标位置上的元素,导致数据上元素类似向前移动,然后把数组的最后一个元素设置为null

查看第二个方法boolean isEmpty()
在这里插入图片描述
查看第三个方法boolean contains(Object o);
在这里插入图片描述
在arrayList中通过for循环来查询出是否有此元素
查看第四个方法 boolean isEmpty();
在这里插入图片描述
查看第五个方法Iterator iterator();
以正确的顺序返回此列表中元素的迭代器。返回一个Itr类

查看第六个方法Object[] toArray();一旦变量被transient修饰,变量将不再是对象持久化的一部分,该变量内容在序列化后无
return (T[]) copyOf(original, newLength, original.getClass());

查看第七个方法boolean add(E e);
在这里插入图片描述

在这里插入图片描述
arraylist中返回一个新数组,如果添加的元素超出数组返回,就会扩容1.5倍

查看第八个方法boolean remove(Object o);
从此列表中删除第一次出现的指定元素,如果存在*,则将其删除。如果列表不包含元素,则*不变。更正式地,删除具有最低索引的元素
在这里插入图片描述
查看第九个方法boolean containsAll(Collection<?> c);
在这里插入图片描述
循环遍历集合中的元素,每一个进行比较值。

查看第十个方法boolean addAll(Collection<? extends E> c);
在这里插入图片描述
protected transient int modCount = 0;
集合大小改变次数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值