【Java 集合】集合框架之 List

Java 的 List 是非常常用的数据类型。

List 是有序的 Collection,它一共有三个实现类:

1.ArrayList

2.Vector

3.LinkedList

看一下它们之间的关系:

话外音:图中关系是 UML 类图表示。

实线箭头表示,继承,从一个非接口类继承。

虚线箭头表示,实现实现一个接口。

1.ArrayList(数组)

ArrayList 是最常用的 List 实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。

数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要将已经有数组的数据复制到新的存储空间中。

当从 ArrayList 的中间位置插入或者删除元素时,需要对数组进行复制、移动代价比较高。

因此,它适合随机查找和遍历,不适合插入和删除。

2.Vector(数组实现、线程同步)

Vector 与 ArrayList 一样,也是通过数组实现的,不同的是它支持线程的同步,既某一时刻只有一个线程能够写 Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此访问它比访问 ArrayList 慢。

3.LinkList(链表)

LinkedList 使用链表结构存储数据的,很适合数据的动态插入和删除,随机访问和遍历速度比较慢。

另外,他还提供了 List 接口种没有定义的方法,专门用于操作表头和表尾元素,可以当作堆栈、队列和双向队列使用。

 

PS:文章内容和图片通过网上收集、整理、润色,侵删!

不管做什么,只要坚持下去就会不一样!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章