![](https://img.haomeiwen.com/i11750498/16adca2e23b6a0ad.png)
一.从源码中可以看出,ArrayList继承可AbstractList 和实现了,和实现了多个接口,List<E>, RandomAccess, Cloneable, java.io.Serializable
在看看他继承机构
![](https://img.haomeiwen.com/i11750498/fd4eb3ca58724956.png)
![](https://img.haomeiwen.com/i11750498/4669f71e0297d7ba.png)
这个构造方法,是指定自己构造ArrayList自己给定大小,要是不给定大小,或者给的是0 都会给他一个空的
![](https://img.haomeiwen.com/i11750498/5fd56ccb8ee58d9d.png)
这个方法是获取这个对象第一次出现的位置。从代码中可以看出即使是空的也会有空的返回值。
![](https://img.haomeiwen.com/i11750498/fac7b44b222285ef.png)
这个方式,是判断下表是否越界,这个异常我们有的时候会遇到,现在就知道这个异常是哪里抛出来的了。
![](https://img.haomeiwen.com/i11750498/6ef4e45ce2698a1a.png)
从这里我们可以看出,ArrayList底层是数组,所以我们就可以解释ArrayList 为什么查询速度快,修改慢的问题
网友评论