java集合类源码详解-ArrayList(7)-基于JDK8

现在我们接着看ArrayList的set()方法

下面是测试代码

点击下一步,rangeCheck(index),之前的博客见了很多次了,就是判断这个索引是否比当前数据的实际数据数量小

大于等于都是不可以的,现在我们只有0号,1号索引有数据,size=2。所以index不能大于等于2,。

说白了set()这个函数是在已经有数据的地方替换,不能在没数据的地方去插数据。

这个函数的执行步骤就是把这个索引位的数据通过elementData()函数,返回这个索引的数据,用一个变量oldValue保存

然后通过随机访问的方式,在这个索引位用新数据替换。

最终返回旧数据。

接下来再看看clear()函数。

这个函数就不写测试了,因为这个函数简直不要太简单

因为要改变数组 里面的数据的实际数量,所以modcount肯定会自加

然后通过一个for循环把这个数组里面的所有数据对应的索引位的数组全部赋值为null

猜你喜欢

转载自blog.csdn.net/qq_37889257/article/details/84398943