List 接口一共有三个实现类,分别是ArryList ,LinkdList,Vector
三者具体的区别如下:
1.ArryList 是最常用的List实现类,内部是通过数组实现的,它允许对元素进行快速随机访问,数组的缺点是每个元素之间不能有间隔,当数组大小不满足时 需要增加储存储存能力,就要将已有的数据复制到新的储存空间中,当从ArrayList的中间位置插入或删除元素时,需要对数组进行复制,移动,代价比较高,
因此。 它适合随机查找和遍历,不适合插入和删除。
2.Vector与ArryList一样,也是通过数组实现的,不同的是它支持线程同步,即:
某一时刻,只有一个线程能够写入Voctor,避免多线程同时写入而引起的不一致性,但实现同步的花费很高,因此,访问它比ArryList慢。
3,LinKdList是链表结构储存数据的,很适合数据的动态插入和删除,随机访问遍历速度比较慢