ArrayList的特性,ArrayList特性
分享于 点击 25262 次 点评:260
ArrayList的特性,ArrayList特性
ArrayList分析:1). ArrayList实际上是通过一个数组去保存数据的,当我们构造ArrayList时,如果使用默认构造函数,ArrayList的默认容量大小是10。
2). 当ArrayList容量不足以容纳全部元素时,ArrayList会自动扩张容量,新的容量 = 原始容量 + 原始容量 / 2。
3). ArrayList的克隆函数,即是将全部元素克隆到一个数组中。
4). ArrayList实现java.io.Serializable的方式。当写入到输出流时,先写入“容量”,再依次写出“每一个元素”;当读出输入流时,先读取“容量”,再依次读取“每一个元素”。
5). 在做ArrayList的遍历的时候有3中遍历的方法,分别是随机访问遍历,用迭代器遍历和强制for循环遍历,按照效率来说最快的是随机访问遍历,最差的是迭代器遍历。
6). ArrayList的遍历是不安全的,在遍历的时候如果改变了集合的结构会抛出ConcurrentModificationException异常。也就是快速失败机制(fail-fast机制),在不能或不想进行同步遍历,但又需要从并发线程中排除冲突时或者当遍历操作的数量大大超过可变操作的数量时,可以用CopyOnWriteArrayList来替代ArrayList。CopyOnWriteArrayList核心机制是任何对array在结构上有所改变的操作(add、remove、clear等),CopyOnWriterArrayList都会copy现有的数据,再在copy的数据上修改,这样就不会影响COWIterator中的数据了,修改完成之后改变原有数据的引用即可。同时这样造成的代价就是产生大量的对象,同时数组的copy也是相当有损耗的。
相关文章
- 暂无相关文章
用户点评