看 JDK 源码的时候,Java 开发设计者在对数组的复制时,通常都会使用 System.arraycopy() 方法。
概述
ArrayList
是一种变长的集合类,基于定长数组实现。ArrayList
允许空值和重复元素,当往ArrayList
中添加的元素数量大于其底层数组容量时,其会通过扩容机制重新生成一个更大的数组。另外,由于ArrayList
底层基于数组实现,所以其可以保证在O(1)
复杂度下完成随机查找操作。其他方面,ArrayList
是非线程安全类,并发环境下,多个线程同时操作ArrayList
,会引发不可预知的错误。
ArrayList
是大家最为常用的集合类,作为一个变长集合类,其核心是扩容机制。所以只要知道它是怎么扩容的,以及基本的操作是怎样实现就够了。本文后续内容也将围绕这些点展开叙述。