muzhongjiang

JDK 源码解析 —— 集合(一)数组 ArrayList

1. 概述

ArrayList ,基于 [] 数组实现的,支持自动扩容的动态数组。相比数组来说,因为其支持自动扩容的特性,成为我们日常开发中,最常用的集合类,没有之一。

在前些年,实习或初级工程师的面试,可能最爱问的就是 ArrayList 和 LinkedList 的区别与使用场景。不过貌似,现在问的已经不多了,因为现在信息非常发达,这种常规面试题已经无法区分能力了。当然即使如此,也不妨碍我们拿它开刀,毕竟是咱的“老朋友”。

2. 类图

ArrayList 实现的接口、继承的抽象类,如下图所示:类图类图

实现了 4 个接口,分别是:

继承了 java.util.AbstractList 抽象类,而 AbstractList 提供了 List 接口的骨架实现,大幅度的减少了实现迭代遍历相关操作的代码。可能这样表述有点抽象,胖友点到 java.util.AbstractList 抽象类中看看,例如说 #iterator()#indexOf(Object o) 等方法。

分类:

技术点:

相关文章: