Java 的 List 是非常常用的数据类型。
List 是有序的 Collection,它一共有三个实现类:
1.ArrayList
2.Vector
3.LinkedList
看一下它们之间的关系:
话外音:图中关系是 UML 类图表示。
实线箭头表示,继承,从一个非接口类继承。
虚线箭头表示,实现实现一个接口。
1.ArrayList(数组)
ArrayList 是最常用的 List 实现类,内部是通过数组实现的,它允许对元素进行快速随机访问。
数组的缺点是每个元素之间不能有间隔,当数组大小不满足时需要增加存储能力,就要将已经有数组的数据复制到新的存储空间中。
当从 ArrayList 的中间位置插入或者删除元素时,需要对数组进行复制、移动代价比较高。
因此,它适合随机查找和遍历,不适合插入和删除。
2.Vector(数组实现、线程同步)
Vector 与 ArrayList 一样,也是通过数组实现