List(1):
----List:列表
有序的Collection
允许有重复的元素,也允许嵌套
举个例子:{ 1, 2, 4, { 5, 2 }, 1, 3 }
----List主要实现有三个类:
(1)ArrayList (非同步的)
(2)LinkedList (非同步的)
(3)Vector(同步的)
List(2): ArrayList
----以数组实现的列表,不支持同步
----利用索引位置可以快速定位访问
----不适合指定位置的插入、删除操作(大量的数据后移操作)
----适合变动不大,主要用于查询的数据
----和Java数组相比,其容量是可动态调整的
----ArrayList在元素填满容器时会自动扩充容器大小的50%
举个例子:
ArrayList容器的遍历方法:
第一种:Iterator遍历
第二种:索引位置遍历
第三种:for-each遍历
List(3)
LinkedList:
----以双向链表实现(底层实现方式)的列表,不支持同步
----可以被当作堆栈、队列和双端队列进行操作
----顺序访问高效,随机访问较差,中间插入和删除高效
----适用于经常变化的数据
举个例子:
比较:ArrayList适用于较多查询的(静态)数据,而LinkedList适用于频繁增删的数据
List(4):
Vector(同步)
----和ArrayList类似,可变数组实现的列表
----Vector同步,适合在多线程下使用
----原先不属于JCF框架,属于Java最早的数据结构,性能较差
----从JDK1.2开始,Vector被重写,并纳入到JCF
----官方文档建议在非同步情况下,优先采用ArrayList
举个例子:
遍历方法有四种:Enumeration遍历是老的方法
其他三种遍历函数跟ArrayList和linkedList一样,只是参数不一样,这里只给出第四种遍历函数
总结:
----介绍了三种List类,分别是 Arraylist / LinkedList / Vector
----同步采用Vector
----非同步情况下,根据数据操作特点选取 ArrayList / LinkedList