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:红黑树