List接口集合总结
2021-04-22 本文已影响0人
知道越多不知道越多
常用实现类
Vector(https://www.jianshu.com/p/4752e54bf75c)
- 底层使用数组存储,默认容器大小为10,可通过构造方法指定容器大小,需要扩容时,扩大为原来的2倍
- 通过synchronized来保证线程安全,导致性能降低,并发场景下基本不会使用
ArrayList(https://www.jianshu.com/p/9dec54bd4537)
- 底层使用数组存储,默认容器大小为10,可通过构造方法指定容器大小,需要扩容时,扩大为原来的1.5倍
- 对容器数据删除或者新增时,可能导致数组数据的移动,性能降低,所以如果我们知道存储数据大小,那么就指定容器大小。
- 不能保证线程安全,可以通过Collections.synchronizedList(list)来实现线程安全
LinkedList(https://www.jianshu.com/p/601fb5f39816)
- 底层使用双向链表存储数据,容器大小不受限,当容器数据量变大时,查询效率会成线性增加,不适合在读多写少的场景。
- 由于实现了双向链表,所以可以用来实现队列 和 栈