reference:
前记
上篇主要复习了 ArrayList HashMap HashTable CurrentHashMap等,这篇会更加基础,说一说普通的集合
我自己先简单的描述一下这张图,首先最大的接口是 collection,与之相并列的还有 Map ,也就是上篇HashMap的内容。然后还有三个小接口 List Queue Set 去实现 collection
list : ArrayList LinkedList Vector(为何画了×)
- Vector 加了太多的synchronized 已启用
- Vector和ArrayList的区别:Vector线程安全 扩容时2倍,ArrayList 扩容1.5倍
Queue:LinkedList Deque=>ArrayDeque Priority Queue
-
Deque 俩端都可以进出
-
实现普通队列使用 ArrayDeque 效率高,LinkedList会有其他开销
-
只要不保存Null值,就选ArrayDeque
-
用 ArrayDeque 实现栈
-
Priority Queue
堆
是一个完全二叉树
快速拿到一个数组中最大、最小值 O(1)
Set:HashSet LinkedHashSet SortedSet=>TreeSet
