2.1 集合(容器)
主要由两大借口派生而来:一个是Collection、一个是Map,而Collection下还有List、Set、Queue。
- List:存储的元素是有序的,可重复的
- Set:存储的元素是不可重复的
- Queue:存储元素有序、可重复,按照特定排队规则确定先后顺序
- Map:使用键值对存储,key无序、不可重复,value无序、可重复。
2.2 集合框架底层数据结构
- List
- ArrayList:Objects数组
- Vector:Objects数组
- LinkedList:双向链表
- Set
- HashSet:基于HashMap实现
- LinkedHashSet:基于LinkedHashMap实现
- TreeSet:基于红黑树实现
- Queue
- PriorityQueue:Object数组实现的小顶堆
- DelayQueue:基于Priority实现
- ArrayDeque:可扩容双向数组
- Map
- HashMap:JDK1.8之前由数组+链表组成,JDK1.8后,链表长度大于8时,转换为红黑树。
- LinkedHashMap:继承自HashMap,底层与HashMap相同,不同的是增加了双向链表,使得上面的接口可以保持键值对插入的顺序。
- HashTable:数组+链表组成,链表主要为了解决Hash冲突
- TreeMap:红黑树