1. ArrayList概述:
ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。
ArrayList 继承了AbstractList,实现了List。它是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。
ArrayList 实现了RandmoAccess接口,即提供了随机访问功能。RandmoAccess是java中用来被List实现,为List提供快速访问功能的。在ArrayList中,我们即可以通过元素的序号快速获取元素对象;这就是快速随机访问。稍后,我们会比较List的“快速随机访问”和“通过Iterator迭代器访问”的效率。
ArrayList 实现了Cloneable接口,即覆盖了函数clone(),能被克隆。
ArrayList 实现java.io.Serializable接口,这意味着ArrayList支持序列化,能通过序列化去传输。
和Vector不同,ArrayList中的操作不是线程安全的。所以,建议在单线程中才使用ArrayList,而在多线程中可以选择Vector或者CopyOnWriteArrayList。


< http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+Cjxicj4KPC9wPgo8cD4KPGJyPgo8L3A+CjxwPgo8YnI+CjwvcD4KPHA+Crb+IKGiubnU7Lqvyv08L3A+CjxwPgovLyDErMjPubnU7Lqvyv08YnI+CkFycmF5TGlzdCgpPGJyPgovLyBjYXBhY2l0ecrHQXJyYXlMaXN0tcTErMjPyN3Bv7Tz0KGho7Wx08nT2tT2vNPK/b7dtbzWwsjdwb+yu9fjyrGjrMjdwb+74cztvNPJz9K7tM7I3cG/tPPQobXE0ruw66GjPGJyPgpBcnJheUxpc3QoaW50IGNhcGFjaXR5KTxicj4KLy8gtLS9qNK7uPaw/LqsY29sbGVjdGlvbrXEQXJyYXlMaXN0PGJyPgpBcnJheUxpc3QoQ29sbGVjdGlvbjw/IGV4dGVuZHMgRT4gY29sbGVjdGlvbik8YnI+CjwvcD4KPHA+Csj9oaIgQVBJPC9wPgo8cD4KLwogQ29sbGVjdGlvbtbQtqjS5bXEQVBJPGJyPgpib29sZWFuICAgICAgICAgICAgIGFkZChFIG9iamVjdCk8YnI+CmJvb2xlYW4gICAgICAgICAgICAgYWRkQWxsKENvbGxlY3Rpb248PyBleHRlbmRzIEU+IGNvbGxlY3Rpb24pPGJyPgp2b2lkICAgICAgICAgICAgICAgIGNsZWFyKCk8YnI+CmJvb2xlYW4gICAgICAgICAgICAgY29udGFpbnMoT2JqZWN0IG9iamVjdCk8YnI+CmJvb2xlYW4gICAgICAgICAgICAgY29udGFpbnNBbGwoQ29sbGVjdGlvbjw/PiBjb2xsZWN0aW9uKTxicj4KYm9vbGVhbiAgICAgICAgICAgICBlcXVhbHMoT2JqZWN0IG9iamVjdCk8YnI+CmludCAgICAgICAgICAgICAgICAgaGFzaENvZGUoKTxicj4KYm9vbGVhbiAgICAgICAgICAgICBpc0VtcHR5KCk8YnI+Ckl0ZXJhdG9yPEU+ICAgICAgICAgaXRlcmF0b3IoKTxicj4KYm9vbGVhbiAgICAgICAgICAgICByZW1vdmUoT2JqZWN0IG9iamVjdCk8YnI+CmJvb2xlYW4gICAgICAgICAgICAgcmVtb3ZlQWxsKENvbGxlY3Rpb248Pz4gY29sbGVjdGlvbik8YnI+CmJvb2xlYW4gICAgICAgICAgICAgcmV0YWluQWxsKENvbGxlY3Rpb248Pz4gY29sbGVjdGlvbik8YnI+CmludCAgICAgICAgICAgICAgICAgc2l6ZSgpPGJyPgo8VD4gVFtdICAgICAgICAgICAgIHRvQXJyYXkoVFtdIGFycmF5KTxicj4KT2JqZWN0W10gICAgICAgICAgICB0b0FycmF5KCk8YnI+Ci8vIEFic3RyYWN0Q29sbGVjdGlvbtbQtqjS5bXEQVBJPGJyPgp2b2lkICAgICAgICAgICAgICAgIGFkZChpbnQgbG9jYXRpb24sIEUgb2JqZWN0KTxicj4KYm9vbGVhbiAgICAgICAgICAgICBhZGRBbGwoaW50IGxvY2F0aW9uLCBDb2xsZWN0aW9uPD8gZXh0ZW5kcyBFPiBjb2xsZWN0aW9uKTxicj4KRSAgICAgICAgICAgICAgICAgICBnZXQoaW50IGxvY2F0aW9uKTxicj4KaW50ICAgICAgICAgICAgICAgICBpbmRleE9mKE9iamVjdCBvYmplY3QpPGJyPgppbnQgICAgICAgICAgICAgICAgIGxhc3RJbmRleE9mKE9iamVjdCBvYmplY3QpPGJyPgpMaXN0SXRlcmF0b3I8RT4gICAgIGxpc3RJdGVyYXRvcihpbnQgbG9jYXRpb24pPGJyPgpMaXN0SXRlcmF0b3I8RT4gICAgIGxpc3RJdGVyYXRvcigpPGJyPgpFICAgICAgICAgICAgICAgICAgIHJlbW92ZShpbnQgbG9jYXRpb24pPGJyPgpFICAgICAgICAgICAgICAgICAgIHNldChpbnQgbG9jYXRpb24sIEUgb2JqZWN0KTxicj4KTGlzdDxFPiAgICAgICAgICAgICBzdWJMaXN0KGludCBzdGFydCwgaW50IGVuZCk8YnI+Ci8vIEFycmF5TGlzdNDC1Pa1xEFQSTxicj4KT2JqZWN0ICAgICAgICAgICAgICAgY2xvbmUoKTxicj4Kdm9pZCAgICAgICAgICAgICAgICAgZW5zdXJlQ2FwYWNpdHkoaW50IG1pbmltdW1DYXBhY2l0eSk8YnI+CnZvaWQgICAgICAgICAgICAgICAgIHRyaW1Ub1NpemUoKTxicj4Kdm9pZCAgICAgICAgICAgICAgICAgcmVtb3ZlUmFuZ2UoaW50IGZyb21JbmRleCwgaW50IHRvSW5kZXgpPGJyPgo8L3A+CjxwPgo8YnI+CjwvcD4KPHA+Cjxicj4KPC9wPgo8cD4Ky8ShorHpwPq3vcq9PC9wPgo8cD4KPGJyPgo8L3A+CjxwPgo8cHJlIGNsYXNzPQ=="brush:java;">package com.gao; import java.util.ArrayList; import java.util.Iterator; import java.util.List; public class ArraylistDemo { public static void main(String args[]){ List