今天就跟大家聊聊有关如何正确的使用ArrayList,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
<强> ArrayList简介强>
ArrayList是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了列表,RandomAccess,可克隆,io。序列化这些接口。
ArrayList继承了AbstractList,实现了列表。它是一个数组队列,提供了相关的添加,删除,修改,遍历等功能。
ArrayList实现了RandmoAccess接口,即提供了随机访问功能.RandmoAccess是java中用来被列表实现,为列表提供快速访问功能的。在ArrayList中,我们即可以通过元素的序号快速获取元素对象,这就是快速随机访问。稍后,我们会比较列表的“快速随机访问”和“通过迭代器迭代器访问”的效率。
ArrayList实现了可克隆接口,即覆盖了函数克隆(),能被克隆。
ArrayList实现java.io.Serializable接口,这意味着ArrayList支持序列化,能通过序列化去传输。和矢量不同,ArrayList中的操作不是线程安全的!所以,建议在单线程中才使用ArrayList,而在多线程中可以选择向量或者CopyOnWriteArrayList只
<强> ArrayList构造函数,强>
//默认构造函数 ArrayList ()//容量是ArrayList的默认容量大小。当由于增加数据导致容量不足时,容量会添加上一次容量大小的一半。 ArrayList (int容量)//创建一个包含收集的ArrayList ArrayList (Collection<及# 63;E>延伸;收集)
<强> ArrayList的API 强>
//集合中定义的API 布尔加(E对象) 布尔addAll (Collection<及# 63;E>延伸;收集) 空白clear () 布尔包含对象(对象) 布尔containsAll (Collection<及# 63;比;收集) 布尔=(对象对象) int hashCode () 布尔isEmpty () Iterator迭代器() 逻辑删除对象(对象) 布尔removeAll (Collection<及# 63;比;收集) 布尔retainAll (Collection<及# 63;比;收集) int大小() & lt; T>T [] toArray (T[]数组) 对象[]toArray ()//AbstractCollection中定义的API 空白添加(int位置,E对象) 布尔addAll (int位置,Collection<及# 63;E>延伸;收集) E (int位置) int indexOf(对象对象) int lastIndexOf对象(对象) ListIterator listIterator (int位置) ListIterator listIterator () E删除(int位置) E组(int位置,E对象) List 分表(int, int)//ArrayList新增的API 对象克隆() 空白ensureCapacity (int minimumCapacity) 空白trimToSize () 空白removeRange (int fromIndex int toIndex)
<强> ArrayList的继承关系强>
java . lang . object java.util.AbstractCollectionjava.util.AbstractList java.util.ArrayList 公开课ArrayList 扩展AbstractList 实现List
ArrayList与收集关系如下图:
ArrayList包含了两个重要的对象:。
(1) elementData是“对象[]类型的数组“,它保存了添加到ArrayList中的元素。实际上,elementData是个动态数组,我们能通过构造函数ArrayList (int initialCapacity)来执行它的初始容量为initialCapacity;如果通过不含参数的构造函数ArrayList()来创建ArrayList,则elementData的容量默认是10. elementData数组的大小会根据ArrayList容量的增长而动态的增长,具体的增长方式,请参考源码分析中的ensureCapacity()函数。
(2)大小则是动态数组的实际大小只
为了更了解ArrayList的原理,下面对ArrayList源码代码作出分析.ArrayList是通过数组实现的,源码比较容易理解只,,
包java.util; 公开课ArrayList扩展AbstractList 实现List 如何正确的使用ArrayList