Collection&Map

前几篇文章介绍了ArrayList、LinkedList,GitHub上已经更新了部分父类接口以及抽象继承类的源码解析:

点击这里

下面来看看日常编程中比较熟悉的容器类底层的数据结构:

Collection
AbstractCollection

List
AbstractList

  • ArrayList :【动态数组】(非线程安全)
  • LinkedList :【双向链表】(非线程安全)
  • Vector:【动态数组】(线程安全)
  • Stack:【栈】(基于动态数组实现)(线程安全)

Set
AbstractSet

  • HashSet :【哈希表】无重复元素集合,基于HashMap实现(线程安全)
  • LinkedHashSet :【哈希表、双向链表】基于LinkedHashMap实现的集合(非线程安全)
  • TreeSet:【红黑树】基于TreeMap实现的集合(非线程安全)

Map
AbstractMap

  • HashMap :【哈希表】(非线程安全)
  • LinkedHashMap :【哈希表、双向链表】(非线程安全)
  • IdentityHashMap :【哈希表】(非线程安全)
  • TreeMap :【红黑树】(非线程安全)
  • WeakHashMap :【哈希表】(非线程安全)
  • Hashtable:【哈希表】(线程安全)

Collection集合体系继承结构图:(常用类)

Collection&Map

Map集合继承体系结构图:(常用类)

Collection&Map


往期文章:

ArrayList篇

LinkedList篇

迭代器模式

源码解析库已更新:欢迎star

Collection源码解析

AbstractCollection源码解析

List源码解析

AbstractList源码解析

Set源码解析

AbstractSet源码解析

Stack源码解析

Map源码解析

AbstractMap源码解析