Java集合源码分析ArrayList
ArrayList概述
1.1特征
1.可以动态增长和缩减的索引序列,基于数组实现,线程不安全
2.封装了一个动态再分配的Object[]数组,每一个类对象都有一个capacity属性,表示封装的Object[]数组长度,向ArrayList中添加元素时,capacity会自动增加。如果想批量加,可使用ensureCapacity,提高性能
3.线程不安全
1.2数据结构
底层数据结构是数组,数组元素是Object
ArrayList源码
2.1继承结构和层次关系
这里做了两层继承,为什么不直接继承AbstractCollection?
接口中全是抽象方法,抽象类中可以有抽象方法,可以有具体实现,利用这一点让AbstractList是实现接口中一些通用方法,而具体类ArrayList继承AbstractList拿到一些通用的方法,实现自己的一些特有方法,这样代码简洁,继承结构最底层的类中通用的方法都抽取出来,减少重复代码,一般情况下一个类上面还有一个抽象类,就是这个作用
以上是 Java集合源码分析ArrayList 的全部内容, 来源链接: utcz.com/a/18494.html