List
- Vector: Object[] 数组;
- Arraylist: Object[] 数组;
- LinkedList: 双向链表(JDK1.6 之前为双向循环链表,JDK1.7 取消了循环)
Set
- HashSet(无序,唯一): 基于 HashMap 实现的,底层采用 HashMap 来保存元素;
- LinkedHashSet: LinkedHashSet 继承与 HashSet,并且其内部是通过 LinkedHashMap 来实现的,有点类似于 LinkedHashMap 的内部是基于 HashMap 实现;
- TreeSet(有序,唯一): 红黑树(自平衡的排序二叉树)
Map
- HashMap: JDK1.8 前,HashMap 由数组+链表组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”)。JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为8)时,会将链表转化为红黑树,以减少搜索时间;
- LinkedHashMap:<