集合源码分析-List
集合继承关系图
属性
1 | /** |
构造方法
- 无参构造方法,数组指向 DEFAULTCAPACITY_EMPTY_ELEMENTDATA 对象,添加数据时才进行初始化
1 | public ArrayList() { |
- 指定容量大小的构造方法
1 | public ArrayList(int initialCapacity) { |
- 传入一个集合的构造方法
1 | public ArrayList(Collection<? extends E> c) { |
常用方法
- public boolean add(E e) 添加元素
1 | public boolean add(E e) { |
- public void add(int index, E element) 指定位置插入元素
1 | public void add(int index, E element) { |
- public boolean addAll(Collection<? extends E> c) 增加一个集合元素到当前集合
1 | public boolean addAll(Collection<? extends E> c) { |
- public boolean addAll(int index, Collection<? extends E> c) 从指定位置开始插入一个集合
1 | //判断index是否在0-size区间,否则抛出异常 |
- public E remove(int index) 删除指定索引上面的元素
1 | public E remove(int index) { |
- public boolean remove(Object o) 判断对象 o 是否存在于集合,如果存在,删除元素返回 true,否则返回 false,只会删除一次
1 | public boolean remove(Object o) { |
- public boolean removeAll(Collection<?> c) 原集合 A A-AUB,删除交集
1 | public boolean removeAll(Collection<?> c) { |
- public boolean retainAll(Collection<?> c) 返回交集
1 | public boolean retainAll(Collection<?> c) { |
public List
subList(int fromIndex, int toIndex) 返回当前元素的子集,注意对整个子集的修改将会影响到原有集合 public void sort(Comparator<? super E> c) 对集合元素排序
public int size() 返回数组长度
public boolean contains(Object o) 判断元素是否在集合中
1 | public boolean contains(Object o) { |
- public int indexOf(Object o) 返回元素在集合中的位置,如果不存在,则返回-1
1 | public int indexOf(Object o) { |
- public int lastIndexOf(Object o) 反向遍历,返回元素在集合中的位置,如果不存在,则返回-1
1 | public int lastIndexOf(Object o) { |
- public void trimToSize 重置数组空间,释放不需要的空间
1 | public void trimToSize() { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 zeofuns!