wow you can really read source code : List (JDK8) 未完结

有些话、适合烂在心里 提交于 2020-02-03 11:07:55

ArrayList

关于ArrayList

  1. ArrayList的长度可变:这里比较的是普通的数组你会发现普通数组没有扩容的方法,ArrayList继承了AbstractList因此继承了添加、删除、修改、遍历等方法并重写了他们。
  2. ArrayList具有随机访问功能:ArrayList实现了RandomAccess接口,但是这个接口并无内容,在自身类内部创建了内部类SubList实现RandomAccess接口并也实现增加删除等方法。
  3. ArrayList 能被克隆:ArrayList实现了Cloneable接口,但是这个接口也无内容,通过重写Object类的clone方法实现。
  4. ArrayList支持序列化:ArrayList实现了Serializable接口,但这个接口仍然是个空接口,对应的是writeObject方法。

*空接口起标识作用,告诉程序实现了它的对象具有某某功能

继承关系图

图源:参考资料1
ArrayList继承关系图
通过各IDE查看源码可看到
在这里插入图片描述

参考资料:

  1. 知乎用户 Lyon 的文章Java集合—List—继承关系

  2. CSDN用户 Fighter168 的文章ArrayList源码分析(基于JDK8)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!