目录
简介
-
内部由数组实现
-
可调整大小的数组的实现List接口
-
这个类是大致相当于Vector,不同之处在于它是不同步的
-
ArrayList实际存储容量等于数组容量是自动扩容
类声明信息
public class ArrayList<E> extends AbstractList<E>
implements List<E>, RandomAccess, Cloneable, java.io.Serializable
- ArrayList<E>:<E>表示泛型,作用是限制ArrayList中的数据是同一类型,E不能是基本类型,对于基本类型我们可以用基本类型的包装类
- 继承AbstractList类:这是Java中常用的思想,我们把一些类共同的方法抽取出来作为他们的共同父类,可以减少子类的代码量,子类可以根据需要继承或重写方法。
-
java.io.Serializable接口:不实现此接口的类将不会使任何状态序列化或反序列化,序列化就是指把实例状态保存到文件中,反序列化就是指把文件信息变回对应状态的实例。
-
Cloneable接口:实现此接口,以声明实例克隆方法合法,在不实现
Cloneable
接口的实例上调用对象的克隆方法导致抛出异常CloneNotSupportedException。
-
list<E>接口:实现了Iterable<T>接口,所以ArrayList<E>继承了该接口,支持迭代器操作。
常量
//serialVersionUID 指序列化版本号
private static final long serialVersionUID = 8683452581122892189L;
//默认初始大小为10
private static final int DEFAULT_CAPACITY = 10;
private static final Object[] EMPTY_ELEMENTDATA = {};
private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
transient Object[] elementData;
private int size;
构造方法
- public ArrayList()
- public ArrayList(int 指定大小)
- public ArrayList(Collection<? extends E> c)
常用方法
add(E e)
将指定的元素追加到此列表的末尾。get(int index)
返回此列表中指定位置的元素。iterator()
以正确的顺序返回该列表中的元素的迭代器。remove(int index)
删除该列表中指定位置的元素。size()
返回此列表中的元素数。
代码
所有方法
boolean | add(E e) 将指定的元素追加到此列表的末尾。 |
void | add(int index, E element) 在此列表中的指定位置插入指定的元素。 |
boolean | addAll(Collection<? extends E> c) 按指定集合的Iterator返回的顺序将指定集合中的所有元素追加到此列表的末尾。 |
boolean | addAll(int index, Collection<? extends E> c) 将指定集合中的所有元素插入到此列表中,从指定的位置开始。 |
void | clear() 从列表中删除所有元素。 |
Object | clone() 返回此 ArrayList实例的浅拷贝。 |
boolean | contains(Object o) 如果此列表包含指定的元素,则返回 true 。 |
void | ensureCapacity(int minCapacity) 如果需要,增加此 ArrayList实例的容量,以确保它可以至少保存最小容量参数指定的元素数。 |
void | forEach(Consumer<? super E> action) 对 |
E | get(int index) 返回此列表中指定位置的元素。 |
int | indexOf(Object o) 返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。 |
boolean | isEmpty() 如果此列表不包含元素,则返回 true 。 |
Iterator<E> | iterator() 以正确的顺序返回该列表中的元素的迭代器。 |
int | lastIndexOf(Object o) 返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。 |
ListIterator<E> | listIterator() 返回列表中的列表迭代器(按适当的顺序)。 |
ListIterator<E> | listIterator(int index) 从列表中的指定位置开始,返回列表中的元素(按正确顺序)的列表迭代器。 |
E | remove(int index) 删除该列表中指定位置的元素。 |
boolean | remove(Object o) 从列表中删除指定元素的第一个出现(如果存在)。 |
boolean | removeAll(Collection<?> c) 从此列表中删除指定集合中包含的所有元素。 |
boolean | removeIf(Predicate<? super E> filter) 删除满足给定谓词的此集合的所有元素。 |
protected void | removeRange(int fromIndex, int toIndex) 从这个列表中删除所有索引在 |
void | replaceAll(UnaryOperator<E> operator) 将该列表的每个元素替换为将该运算符应用于该元素的结果。 |
boolean | retainAll(Collection<?> c) 仅保留此列表中包含在指定集合中的元素。 |
E | set(int index, E element) 用指定的元素替换此列表中指定位置的元素。 |
int | size() 返回此列表中的元素数。 |
void | sort(Comparator<? super E> c) 使用提供的 |
Spliterator<E> | spliterator() 在此列表中的元素上创建late-binding和故障快速 |
List<E> | subList(int fromIndex, int toIndex) 返回此列表中指定的 |
Object[] | toArray() 以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。 |
<T> T[] | toArray(T[] a) 以正确的顺序返回一个包含此列表中所有元素的数组(从第一个到最后一个元素); 返回的数组的运行时类型是指定数组的运行时类型。 |
void | trimToSize() 修改这个 ArrayList实例的容量是列表的当前大小。 |