第十章--Java数据结构 第三节--列表List

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值