学习笔记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<? extends E> c) 将c中的所有元素进行添加,成功返回true
boolean addAll(int index, Collection<? extends E> c) 从下标为index开始添加c中的所有元素,成功返回true
void rangeCheck(int index)判断是否越界
Iterator iterator() 迭代器方法,hasNext()方法用来判断是否还有后继元素和next()方法获取下一个元素,remove()方法删除元素
ListIterator listIterator() ArrayList自带的迭代器,有add()方法可以向ArrayList中添加元素,hasPrevious()方法和previous()方法可以逆向遍历。nextIndex()和previousIndex()方法可以定位当前索引位置。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值