集合全家桶

集合框架总览

集合全家桶

  1. Collection
    接口提供了整个集合框架最通用的增删改查以及集合自身操作的抽象方法,让子类去实现

  2. **Set **
    接口决定了它的子类都是无序、无重复元素的集合,其主要实现有HashSet、TreeSet、LinkedHashSet。

  3. HashSet
    底层采用 HashMap 实现,而 TreeSet 底层使用 TreeMap 实现,大部分 Set 集合的操作都会转换为 Map 的操作,TreeSet 可以将元素按照规则进行排序。

  4. List
    接口决定了它的子类都是有序、可存储重复元素的集合,常见的实现有 ArrayList,LinkedList,Vector

  5. ArrayList
    使用数组实现,而 LinkedList 使用链表实现,所以它们两个的使用场景几乎是相反的,频繁查询的场景使用 ArrayList,而频繁插入删除的场景最好使用 LinkedList

  6. LinkedList 和 ArrayDeque
    都可用于双端队列,而 Josh Bloch and Doug Lea 认为 ArrayDeque 具有比 LinkedList 更好的性能,ArrayDeque使用数组实现双端队列,LinkedList使用链表实现双端队列。

  7. Queue
    接口定义了队列的基本操作,子类集合都会拥有队列的特性:先进先出,主要实现有:LinkedList,ArrayDeque

  8. PriorityQueue
    底层使用二叉堆维护的优先级队列,而二叉堆是由数组实现的,它可以按照元素的优先级进行排序,优先级越高的元素,排在队列前面,优先被弹出处理。

  9. Map
    接口定义了该种集合类型是以<key,value>键值对形式保存,其主要实现有:HashMap,TreeMap,LinkedHashMap,Hashtable

  10. LinkedHashMap
    底层多加了一条双向链表,设置accessOrder为true并重写方法则可以实现LRU缓存

  11. TreeMap
    底层采用数组+红黑树实现,集合内的元素默认按照自然排序,也可以传入Comparator定制排序

java集合框架图集合全家桶