学习笔记ArrayList源码学习

学习笔记

ArrayList源码学习

继承自AbstractList,实现了List接口
private static final int DEFAULT_CAPACITY = 10 默认容量为10
transient Object[] elementData 底层使用Object数组来存储数据
ArrayList(int initialCapacity) 构造函数指定特定的容量大小
void ensureCapacityInternal(int minCapacity) 使用add/addAll增加一个或几个元素都会调用ensureCapacityInternal(int minCapacity)方法,在调用ensureExplicitCapacity方法判断现有的容量和增加元素过后的容量,如果需要扩容再调用grow方法扩容1.5倍,实现自动扩容
int size()方法查看大小
boolean isEmpty()判断是否为空
E get(int index)获取下标为index的数据
E set(int index, E element)将数据存储到下标为index的位置,并返回原数据
boolean add(E e)将元素e添加到数组中,成功返回true
void add(int index, E element)添加一个元素,并与下标为index的元素进行替换
E remove(int index)删除下标为index的元素,并返回这个元素
boolean remove(Object o)调用 void fastRemove(int index)删除下标为index的元素,不做返回旧元素信息的操作
void clear()清空所有的元素,并将size置一
boolean addAll(Collection c) 将c中的所有元素进行添加,成功返回true
boolean addAll(int index, Collection c) 从下标为index开始添加c中的所有元素,成功返回true
void rangeCheck(int index)判断是否越界
Iterator iterator() 迭代器方法,hasNext()方法用来判断是否还有后继元素和next()方法获取下一个元素,remove()方法删除元素
ListIterator listIterator() ArrayList自带的迭代器,有add()方法可以向ArrayList中添加元素,hasPrevious()方法和previous()方法可以逆向遍历。nextIndex()和previousIndex()方法可以定位当前索引位置。

你可能感兴趣的:(学习笔记ArrayList源码学习)