zoukankan      html  css  js  c++  java
  • 集合类源码(一)概述

    一个简单知识点,List和Set都是继承Collection接口,HashMap实现了Map接口,而这两个顶级接口的实现类都有哪些呢?

    Collection<E>

    子接口:BlockingDeque<E>, BlockingQueue<E>, Deque<E>, List<E>, NavigableSet<E>, Queue<E>, Set<E>, SortedSet<E>, TransferQueue<E>

    BlockingDeque<E>【双向阻塞队列】

    实现类:LinkedBlockingDeque

    BlockingQueue<E>【阻塞队列】

    实现类:ArrayBlockingQueue, DelayQueue, LinkedBlockingDeque, LinkedBlockingQueue, LinkedTransferQueue, PriorityBlockingQueue, SynchronousQueue

    Deque<E>【双向队列】

    实现类:ArrayDeque, ConcurrentLinkedDeque, LinkedBlockingDeque, LinkedList

    List<E>【有序列表】

    实现类:AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector

    NavigableSet<E>【SortedSet的扩展】

    实现类:ConcurrentSkipListSet, TreeSet

    Queue<E>【队列】

    实现类:AbstractQueue, ArrayBlockingQueue, ArrayDeque, ConcurrentLinkedDeque, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingDeque, LinkedBlockingQueue, LinkedList, LinkedTransferQueue, PriorityBlockingQueue, PriorityQueue, SynchronousQueue

    Set<E>【集合】

    实现类:AbstractSet, ConcurrentHashMap.KeySetView, ConcurrentSkipListSet, CopyOnWriteArraySet, EnumSet, HashSet, JobStateReasons, LinkedHashSet, TreeSet

    SortedSet<E>【有序集合】

    实现类:ConcurrentSkipListSet, TreeSet

    TransferQueue<E>【一个BlockingQueue,其中生产者可以等待消费者接收元素】

    实现类:LinkedTransferQueue

    结构图:

    =======================================================================================================================================

    Map<K,V>

    子接口:Bindings, ConcurrentMap<K,V>, ConcurrentNavigableMap<K,V>, NavigableMap<K,V>, SortedMap<K,V>
    实现类:AbstractMap<K,V>, Hashtable<K,V>, LinkedHashMap<K,V>

    Bindings【一个key为string类型的key/value映射类型】

    实现类:SimpleBindings

    ConcurrentMap<K,V>【线程安全Map】

    实现类:ConcurrentHashMap, ConcurrentSkipListMap

    ConcurrentNavigableMap<K,V>【支持NavigableMap操作的ConcurrentMap】

    实现类:ConcurrentSkipListMap

    NavigableMap<K,V>【SortedMap的扩展】

    实现类:ConcurrentSkipListMap, TreeMap

    SortedMap<K,V>【有序Map】

    实现类:ConcurrentSkipListMap, TreeMap

    AbstractMap<K,V>【抽象Map】

    实现类:ConcurrentHashMap, ConcurrentSkipListMap, EnumMap, HashMap, IdentityHashMap, TreeMap, WeakHashMap

    Hashtable<K,V>【线程安全Map】

    实现类:Properties, UIDefaults

    接下来的文章会从功能、原理、优缺点三个方面来阐述上述所有实现类

  • 相关阅读:
    VIJOS-P1340 拯救ice-cream(广搜+优先级队列)
    uva 11754 Code Feat
    uva11426 GCD Extreme(II)
    uvalive 4119 Always an Interger
    POJ 1442 Black Box 优先队列
    2014上海网络赛 HDU 5053 the Sum of Cube
    uvalive 4795 Paperweight
    uvalive 4589 Asteroids
    uvalive 4973 Ardenia
    DP——数字游戏
  • 原文地址:https://www.cnblogs.com/LUA123/p/11928740.html
Copyright © 2011-2022 走看看