java集合
Java集合
两大接口: Collection
和Map
Collection
- List
- Queue
- Set

LISTx
vector与ArrayList的区别
- 线程安全
- 扩容 (arraylist 1.5, vector 2)
Queue & Deque
Queue - FIFO; Deque - 两端都可以进出。
- LinkedList
- ArrayDeque
- PriorityQueue
LinkedList Vs ArrayDeque
- 普通队列,linkedlist 或者arraydeque

- 栈,使用arraydeque
linkedList 和 arrayDeque的区别
Priority Queue
先队列的作用是能保证每次取出的元素都是队列中权值最小的
大小关系: 自然顺序或者传入比较器(comparator)
Unbound
二叉小顶堆
BlockingQueue 1
阻塞队列与java concurrency 关联紧密。
Stack
jdk 官方文档不推荐是用Stack作为栈来使用, stack 继承自Vector , 而Vecotr 已经不推荐使用了。
可使用: ---Deque<Integer> stack = new ArrayDeque<>();
Set
HashSet
LinkedHashSet
HashSet + LinkedList: 由链表保证元素有序 + 由哈希表保证元素唯一
TreeSet
红黑树,特定是有序 (natural order / Comparator)
Set底层为Map2,值放在Map的key,value是一个类似于placeholder的Object, 每个Key都指向这个Object。
TODO:
JDK集合类源代码整理 HashMap, ArrayList etc。。。
Reference
https://mp.weixin.qq.com/s/7WA1k31xmatsYTEfyMdLEQ
https://zhuanlan.zhihu.com/p/24877041