Posts Java-ArrayList解析
Post
Cancel

Java-ArrayList解析

继承关系

ArrayList继承关系

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

返回类型名称&参数描述
booleanadd(E e) 
voidadd(int index, E element) 
booleanaddAll(Collection<? extends E> c) 
booleanaddAll(int index, Collection<? extends E> c) 
voidclear() 
Objectclone() 
booleancontains(Object o) 
booleanisEmpty() 
Eremove(int index) 
booleanremove(Object o) 
booleanremoveAll(Collection<?> c) 
intsize() 

相关

  • ArrayList空间是动态分配的, 当空间不够时, 扩容到当前的3/2
  • ArrayList不是线程安全的, 所以最好只在单线程中使用; 多线程用同步处理过的Vector更安全.
  • 与LinkedList相比, 随机读取性能高, 写入/移除效率不如LinkedList

常见场景和例程

  • 创建实例
1

参考资料

This post is licensed under CC BY 4.0 by the author.