分析ArrayList
前面介绍泛型的时候,我们实现了一个简单的动态数组容器类DynamicList,现在我们逐步理解Java中真正的动态数组容器类ArrayList。
1.基本用法
ArrayList是一个泛型容器,新建ArrayList需求实例化泛型参数,比如:
List<Integer> intList = new ArrayList<>();
List<String> strList = new ArrayList<>();
ArrayList的主要方法有:
public boolean add(E e) //添加元素到末尾
public boolean isEmpty()
public int size()
public E get(int index)
public int indexOf(Object o) //查找元素,如果找到,返回索引位置,否则返回-1
public int lastIndexOf(Object o) //从后往前找
public boolean contains(Object o)
public E remove(int index)
public boolean remove(Object o)
public void clear()
public void add(int index, E element)
public E set(int index, E element)
2.基本原理
ArrayList的用法是比较简单的,它的基本原理也是比较容易理解的。ArrayList的内部有一个数组elementData,一般会有一些预留的空间,有一个整数si