系统化的学习技术、研究技术而不是使用技术

集合框架笔记--概览

更新于:2018/10/23 15:23:32 分类:Java技术

一、前言

使用Java也好几年了,一直没有系统的记录过笔记,总觉得对集合的理解就像是北京的雾霾--看不透。思索了好久,终于决定出一个集合框架系列的笔记,顺便整理下这方面的知识点。

二、正文

集合是Java里一种很重要的数据结构,是用于表示一组对象的对象。

集合接口分为两组:

  • java.util.Collection
  • java.util.Map

Collection 接口族主要拓扑结构:

java.lang.Iterable<T>
    └──java.util.Collection<E>
        ├──java.util.List<E>
        ├──java.util.Queue<E>
        │    └──java.util.Deque<E>
        │    │  └──java.util.concurrent.BlockingDeque
        │    ├──java.util.concurrent.BlockingQueue
        │    └──java.util.concurrent.TransferQueue
        └──java.util.Set<E>
            ├──java.util.SortedSet<E>
            └──java.util.NavigableSet<E>

Map 接口族主要拓扑结构:

java.util.Map
    ├──java.util.SortedMap
    │   └──java.util.NavigableMap
    ├──java.util.concurrent.ConcurrentMap
    └──java.util.concurrent.ConcurrentNavigableMap

各类容器的作用如下:

  • Set 元素不重复
  • List 普通意义上的列表
  • Deque Stack(LIFO)和Queue(FIFO)的结合体
  • Map key-value键值对

集合提供了基础实现,以最大限度的减少工作量

  • AbstractCollection
  • AbstractSet
  • AbstractList
  • AbstractSequentialList
  • AbstractMap

实现集合接口的类通常具有<Implementation-style><Interface>形式的名称:

接口 哈希表 可变数组 平衡树 链表 哈希表 +链表
Set HashSet   TreeSet   LinkedHashSet
List   ArrayList   LinkedList  
Deque   ArrayDeque   LinkedList  
Map HashMap   TreeMap   LinkedHashMap

并发集合接口

  • BlockingQueue
  • TransferQueue
  • BlockingDeque
  • ConcurrentMap
  • ConcurrentNavigableMap

并发集合实现

  • LinkedBlockingQueue
  • ArrayBlockingQueue
  • PriorityBlockingQueue
  • DelayQueue
  • SynchronousQueue
  • LinkedBlockingDeque
  • LinkedTransferQueue
  • CopyOnWriteArrayList
  • CopyOnWriteArraySet
  • ConcurrentSkipListSet
  • ConcurrentHashMap
  • ConcurrentSkipListMap

官方文档点这里

留言(0)

给我留言