查看 ArrayList 的继承关系:
public interface Iterable<T>
public interface Collection<E> extends Iterable<E>
public interface List<E> extends Collection<E>
public abstract class AbstractCollection<E> implements Collection<E>
public abstract class AbstractList<E> extends AbstractCollection<E> implements List<E>
public class ArrayList<E> extends AbstractList<E>
- 底层是一个Object类型的数组
- 大小可调整,但用户不感知的
- List中可以放null
- ArrayList 是线程不安全的,安全的需使用:
- ArrayList 属性
- 当通过 new ArrayList() 构造一个空集合,初始长度是为0的,第 1 次添加元素,会创建一个长度为10的数组,并将该元素赋值到数组的第一个位置。
- 自动扩容大小是原来的1.5倍,最大值为 Integer.MAX_VALUE
- ArrayList 适合快速查找 index。不适合删除和指定index插入,性能很低。因为涉及到整个后续数组的元素移动。