DESKTOP-F6K5GEP_20200911-崔婧涓

一、问题

ArrayList 、LinkedList 、 Vector 区别

解决:

相同点:

1、都是 List 接口的实现类

2、都是有序、可重复、可排序的集合,都可以包含null元素

3、都支持迭代器操作

区别:

1、存放元素方式

​ ArrayList、Vector 内部采用数组来存储元素,支持随机访问、增删慢、查找快;

​ LinkedList 内部采用 链表 来存储元素,不支持随机访问、增删快、查找慢。

2、实现Queue 接口、Deque 接口

​ ArrayList 和 Vector 未实现 Queue 接口、Deque 接口,不支持队列操作;

​ LinkedList 实现了,支持队列、栈操作。

3、扩容方式不同

​ ArrayList 内部采用 倍数增长 的方式扩容

​ Vector 内部采用 增加固定增量 的方式扩容

​ LinkedList 内部采用链表实现,不需要扩容

4、线程安全

​ ArrayList 、LinkedList非线程安全,适用于单线程环境;

​ Vector 线程安全,适用于多线程环境

吐槽

感觉集合这块有点被绕晕了,还需要好好整理整理。