继承关系
ArrayList继承了AbstractList, 实现了List接口, 提供了增删查改等功能
除此之外:
- ArrayList实现了RandomAccess接口, 提供了随机访问功能
- ArrayList实现了java.io.Serializable接口, 可以序列化传输
- ArrayList实现了Cloneable接口, 可以被拷贝
构造函数
1
2
3
4
5
6
7
8
// 默认构造函数
ArrayList()
// capacity是ArrayList的默认容量大小。当由于增加数据导致容量不足时,容量会添加上一次容量大小的一半。
ArrayList(int capacity)
// 创建一个包含collection的ArrayList
ArrayList(Collection<? extends E> collection)
API
API文档: Java SE8
常用API
返回类型 | 名称&参数 | 描述 |
---|---|---|
boolean | add(E e) | |
void | add(int index, E element) | |
boolean | addAll(Collection<? extends E> c) | |
boolean | addAll(int index, Collection<? extends E> c) | |
void | clear() | |
Object | clone() | |
boolean | contains(Object o) | |
boolean | isEmpty() | |
E | remove(int index) | |
boolean | remove(Object o) | |
boolean | removeAll(Collection<?> c) | |
int | size() |
相关
- ArrayList空间是动态分配的, 当空间不够时, 扩容到当前的3/2
- ArrayList不是线程安全的, 所以最好只在单线程中使用; 多线程用同步处理过的Vector更安全.
- 与LinkedList相比, 随机读取性能高, 写入/移除效率不如LinkedList
常见场景和例程
- 创建实例
1