Java8集合框架結(jié)構(gòu)圖

集合框架介紹

在Java語言中,Java語言的設(shè)計者對常用的數(shù)據(jù)結(jié)構(gòu)和算法做了一些規(guī)范(接口)和實現(xiàn)(具體實現(xiàn)接口的類)。所有抽象出來的數(shù)據(jù)結(jié)構(gòu)和操作(算法)統(tǒng)稱為Java集合框架(JavaCollectionFramework)。

Java集合框架的好處主要有一下幾點:

  • 降低程序員工作量。話外音:該有的數(shù)據(jù)結(jié)構(gòu)和算法框架已經(jīng)實現(xiàn)了,不用自己寫了,直接用就可以了;
  • 提供了高性能的數(shù)據(jù)結(jié)構(gòu)和算法實現(xiàn),從而提高了性能。話外音:你們自己寫的話有可能性能比較垃圾,我寫好了高性能實現(xiàn)給你們用;
  • 減少了學(xué)習API的工作量。話外音:我把這些集合的API給抽象處理來,你們只要學(xué)習少量的通用API就行了,你就偷著樂吧;
  • 減少了設(shè)計和實現(xiàn)API的工作量。話外音:該做的我都給你們做了。

綜上所述,Java程序員在具體應(yīng)用時,不必考慮數(shù)據(jù)結(jié)構(gòu)和算法實現(xiàn)細節(jié),只需要用這些類創(chuàng)建出來一些對象,使用集合提供的API就能工作的很好了,這樣就大大提高了編程效率。

集合框架結(jié)構(gòu)圖

再上一張簡單點的


集合框架的組成

集合框架主要由以下幾部分組成:

  • 集合接口
    表示不同類型的集合,例如List,Set以及Map。這些接口構(gòu)成了框架的基礎(chǔ)。

    • Collection
    • Set
    • List
    • Queue
    • Deque
    • Map
    • SortedSet
    • SortedMap
    • NavigableSet
    • NavigableMap
    • BlockingQueue
    • TransferQueue
    • BlockingDeque
    • ConcurrentMap
    • ConcurrentNavigableMap
  • 通用實現(xiàn)
    集合接口的通用實現(xiàn)。

    • HashSet
    • TreeSet
    • LinkedHashSet
    • ArrayList
    • ArrayDeque
    • LinkedList
    • PriorityQueue
    • HashMap
    • TreeMap
    • LinkedHashMap
  • 包裝器實現(xiàn)
    為某些實現(xiàn)提供了額外的功能,比如同步。

    • Collections.unmodifiableInterface
    • Collections.synchronizedInterface
    • Collections.checkInterface
  • 適配器實現(xiàn)

    • newSetFromMap(map)
    • asLifoQueue(Deque)
  • 便利的實現(xiàn)
    集合接口的高性能迷你實現(xiàn)。

    • Arrays.asList
    • emptyList, emptySet, emptyMap
    • singleton, singletonList, singletonMap
    • nCopys
  • 遺留實現(xiàn)
    早期版本的集合類,包括VectorHashtable

    • Vector
    • Hashtable
  • 特殊功能實現(xiàn)

    • WeakHashMap
    • IdentityHashMap
    • CopyOnWriteArrayList
    • CopyOnWriteArraySet
    • EnumSet
    • EnumMap
  • 支持并發(fā)的實現(xiàn)
    專門為高并發(fā)設(shè)計的實現(xiàn)。

    • ConcurrentLinkedQueue
    • LinkedBlockingQueue
    • ArrayBlockingQueue
    • PriorityBlockingQueue
    • DelayQueue
    • SynchronousQueue
    • LinkedBlockingDeque
    • LinkedTransferQueue
    • ConcurrentHashMap
    • ConcurrentSkipListSet
    • ConcurrentSkipListMap
  • 抽象實現(xiàn)
    集合接口的部分實現(xiàn)以方便自定義實現(xiàn)。

    • AbstractCollection
    • AbstractSet
    • AbstractList
    • AbstractSequentialList
    • AbstractQueue
    • AbstractMap
  • 算法
    集合里的靜態(tài)方法。

    • sort(List)
    • binarySearch(List, Object)
    • reverse(List)
    • shuffle(List)
    • fill(List, Object)
    • copy(List dest, List src)
    • min(Collection)
    • max(collection)
    • rotate(List list, int distanse)
    • replaceAll(List list, Object oldVal, Object newVal)
    • indexOfSubList(List source, List target)
    • lastIndexOfSubList(List source, List target)
    • swap(List, int, int)
    • frequency(Collection, Object)
    • disjoint(Collection, Collection)
    • addAll(Collection<? super T>, T...)
  • 基礎(chǔ)設(shè)施
    為集合接口提供必要支持的接口。

    • Iterators
      • Iterator
      • ListIterator
    • Ordering
      • Comparable
      • Comparator
    • Runtime exceptions
      • UnSupportedOperationException
      • ConcurrentModificationException
    • Performance
      • RandomAccess
  • 數(shù)組工具
    為數(shù)組提供的工具函數(shù)。

    • Arrays
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容