Java™ 教程(集合接口)

集合接口

核心集合接口封裝了不一樣類型的集合,以下圖所示,這些接口容許獨立於其表示的細節來操縱集合,核心集合接口是Java集合框架的基礎,以下圖所示,核心集合接口造成層次結構。html

colls-coreInterfaces.gif

Set是一種特殊的CollectionSortedSet是一種特殊的Set,依此類推,另請注意,層次結構由兩個不一樣的樹組成 — Map不是真正的Collectionjava

請注意,全部核心集合接口都是泛型,例如,這是Collection接口的聲明。編程

public interface Collection<E>...

<E>語法告訴你該接口是泛型,聲明Collection實例時,你能夠而且應該指定集合中包含的對象類型,指定類型容許編譯器驗證(在編譯時)你放入集合的對象類型是否正確,從而減小運行時的錯誤,有關泛型類型的信息,請參閱泛型課程。segmentfault

當你瞭解如何使用這些接口時,你將瞭解有關Java集合框架的大部分知識,本章討論有效使用接口的通用準則,包括什麼時候使用哪一個接口,你還將學習每一個接口的編程語法,以幫助你充分利用它。api

爲了保持核心集合接口的數量可管理,Java平臺不爲每一個集合類型的每一個變體提供單獨的接口(此類變體可能包括不可變、固定大小和僅附加),相反,每一個接口中的修改操做被指定爲可選的 — 給定的實現能夠選擇不支持全部操做。若是調用了不受支持的操做,則集合將拋出UnsupportedOperationException,實現負責記錄它們支持哪些可選操做,全部Java平臺的通用實現都支持全部可選操做。oracle

如下列表描述了核心集合接口:框架

  • Collection — 集合層次結構的根,集合表示一組稱爲其元素的對象,Collection接口是全部集合實現的最小公分母,用於傳遞集合並在須要最大通用性時對其進行操做。某些類型的集合容許重複元素,而其餘集合則不容許,有些是有序的,有些則是無序的。Java平臺不提供此接口的任何直接實現,但提供了更具體的子接口的實現,例如SetList,另請參閱Collection接口部分。
  • Set — 一個不能包含重複元素的集合,該接口模擬數學集抽象,用於表示集合,例如包含撲克牌的牌,構成學生日程表的課程或在機器上運行的進程,另請參見Set接口部分。
  • List — 有序集合(有時稱爲序列),List能夠包含重複元素,List的用戶一般能夠精確控制列表中每一個元素的插入位置,並能夠經過整數索引(位置)訪問元素,若是你使用過Vector,那麼你就熟悉List的通常風格,另請參閱List接口部分。
  • Queue — 用於在處理以前保存多個元素的集合,除了基本的Collection操做外,Queue還提供追加插入、提取和檢查操做。

    Queue一般(但不必定)以FIFO(先進先出)方式對元素進行排序,除了優先級隊列以外,優先級隊列根據提供的比較器或元素的天然順序對元素進行排序。不管使用什麼順序,隊列的頭部是經過調用removepoll移除元素,在FIFO隊列中,全部新元素都插入隊列的尾部,其餘類型的隊列可能使用不一樣的放置規則,每一個Queue實現都必須指定其排序屬性,另請參閱Queue接口部分。學習

  • Deque — 用於在處理以前保存多個元素的集合,除了基本的Collection操做外,Deque還提供追加插入、提取和檢查操做。

    Deque可用做FIFO(先進先出)和LIFO(後進先出),在雙端隊列中,能夠在兩端插入、檢索和刪除全部新元素,另請參閱Deque接口部分。spa

  • Map — 將鍵映射到值的對象,Map不能包含重複的鍵,每一個鍵最多能夠映射一個值,若是你使用過Hashtable,那麼你已經熟悉了Map的基礎知識,另請參閱Map接口部分。

最後兩個核心集合接口只是SetMap的排序版本:code

  • SortedSet — 一個按升序維護其元素的Set,提供了幾個額外的操做以利用排序,排序集用於天然排序的集合,例如單詞列表和成員名冊,另請參閱SortedSet接口部分。
  • SortedMap — 按升序鍵順序維護映射的Map,這是SortedSetMap模擬,排序映射用於天然排序的鍵/值對集合,例如字典和電話目錄,另請參閱SortedMap接口部分。

要了解排序接口如何維護其元素的順序,請參閱對象排序部分。

接口摘要

核心集合接口是Java集合框架的基礎。

Java集合框架層次結構由兩個不一樣的接口樹組成:

  • 第一個樹以Collection接口開始,它提供了全部集合使用的基本功能,例如addremove方法,它的子接口 — SetListQueue — 提供更專業的集合。
  • Set接口不容許重複元素,這對於存儲諸如一副紙牌或學生記錄之類的集合很是有用,Set接口有一個子接口SortedSet,它提供了集合中元素的排序。
  • List接口提供有序集合,適用於須要精確控制每一個元素插入位置的狀況,你能夠按照其確切位置從List中檢索元素。
  • Queue接口支持追加插入、提取和檢查操做,Queue中的元素一般以FIFO爲基礎進行排序。
  • Deque接口能夠在兩端插入、刪除和檢查操做,Deque中的元素可用於LIFO和FIFO。
  • 第二個樹以Ma​​p接口開始,它映射鍵和值相似於Hashtable
  • Map的子接口SortedMap按升序或按Comparator指定的順序維護其鍵值對。

這些接口容許獨立於其表示的細節來操縱集合。


上一篇:集合介紹

下一篇:Collection接口

相關文章
相關標籤/搜索