ArrayList源码阅读笔记

这是个很简单的数据结构,基本是个数组,但是还是写一个博客吧。

0.使用一个数组作为存储

1.使用一个static final的空数组作为初始化时的data

2.使用modCount变量表征存储结构变化的次数,使iterator能提前了解结构变化,然后抛出异常,fast-fail

3.Arrays.copyOf能够调整数组长度,而且是要深度复制(使用system.arraycopy)

4.Java没有unsigned,所以溢出相当于负数

5.indexOf在非null的情况下使用equals判断

6.插入和删除都使用arraycopy来解决数据复制问题

7.clear会循环把每个数组值置空,方便gc

8.SubList代表着原数据中的一部分的引用,数组是公用的

spliterator没看,没用过没动力。


你可能感兴趣的:(ArrayList源码阅读笔记)