ArrayList源码理解

参看:https://www.cnblogs.com/skywang12345/p/3308556.html
List比Collection多了indexOf()、lastIndexOf()、set()、get()方法 ArrayList继承了AbstractList类,实现了List接口、RandomAccess、Cloneable、Serializable接口

  • AbstractList类提供了Collection接口的骨架实现,以减少实现此接口的工作量。为了实现一个不可修改的集合,程序员只需扩展这个类并提供此iterator和size方法实现。要实现可修改的集合,程序员必须要覆盖此类的add方法。
  • Cloneable接口:一个类实现Cloneable接口,指示Object.clone()方法可以用于对该类的实例进行现场复制是合法的。若在没有实现Cloneable接口的上调用对象的克隆方法导致抛出异常CloneNotSupportException。
  • RandomAccess接口:是一个标志接口(Marker),表明其支持快速访问。具体参看博客 https://blog.csdn.net/weixin_39148512/article/details/79234817
  • Serializable接口:序列化。具体参看博客:https://www.cnblogs.com/huhx/p/serializable.html

ArrayList中的变量,下面构造函数和add()相关方法将会用到以下变量。
该类的变量

ArrayList的构造函数:
ArrayList构造函数
ArrayList API

//**Collection中定义的API**
boolean             add(E object)
boolean             addAll(Collection<? extends E> collection)
void                clear()
boolean             contains(Object object)
boolean             containsAll(Collection<?> collection)
boolean             equals(Object object)
int                 hashCode()
boolean             isEmpty()
Iterator<E>         iterator()
boolean             remove(Object object)
boolean             removeAll(Collection<?> collection)
boolean             retainAll(Collection<?> collection)
int                 size()
<T> T[]             toArray(T[] array)
Object[]            toArray()

//**AbstractionList中定义的API**
void                add(int location, E object)
boolean             addAll(int location, Collection<? extends E> collection)
E                   get(int location)
int                 indexOf(Object object)
int                 lastIndexOf(Object object)
ListIterator<E>     listIterator(int location)
ListIterator<E>     listIterator()
E                   remove(int location)
E                   set(int location, E object)
List<E>             subList(int start, int end)

// ArrayList新增的API
Object               clone()
void                 ensureCapacity(int minimumCapacity)
void                 trimToSize()
void                 removeRange(int fromIndex, int toIndex)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值