Java技术之ArrayList源码分析

概述

ArrayList是一种变长的集合类,基于定长数组实现。ArrayList允许空值和重复元素,当往ArrayList中添加的元素数量大于其底层数组容量时,其会通过扩容机制重新生成一个更大的数组。另外,由于ArrayList底层基于数组实现,所以其可以保证在O(1)复杂度下完成随机查找操作。其他方面,ArrayList是非线程安全类,并发环境下,多个线程同时操作ArrayList,会引发不可预知的错误。

ArrayList是大家最为常用的集合类,作为一个变长集合类,其核心是扩容机制。所以只要知道它是怎么扩容的,以及基本的操作是怎样实现就够了。本文后续内容也将围绕这些点展开叙述。