Java Collection

Interfaces

的核心集合接口封裝不同類型的集合,這在下面的圖中所示的。這些接口允許獨立於其表示的細節來操縱集合。核心集合接口是Java集合框架的基礎。正如你可以看到 如下圖所示,核心集合接口形成一個層次。

兩棵接口樹,一棵以Collection開頭,包括Set,SortedSet,List和Queue,另一棵以Map開頭,包括SortedMap。
注意:Deque是Queue的子接口,和Set,List,Queue不是同一級。
核心集合接口

A Set是一種特殊的Collection,a SortedSet是一種特殊的Set,依此類推。還要注意,層次結構由兩棵不同的樹組成-a Map不是true Collection。

請注意,所有核心集合接口都是通用的。例如,這是Collection接口的聲明。

公共接口Collection …
該語法告訴你的是,接口是通用的。聲明Collection實例時,可以並且應該指定集合中包含的對象的類型。指定類型可以使編譯器在編譯時驗證您放入集合中的對象類型是否正確,從而減少了運行時的錯誤。有關泛型類型的信息,請參閱 泛型(更新)課程。

當您瞭解如何使用這些接口時,您將瞭解有關Java Collections Framework的大部分知識。本章討論有效使用接口的一般準則,包括何時使用哪個接口。您還將學習每種接口的編程習慣用法,以幫助您充分利用它。

爲了使核心集合接口的數量易於管理,Java平臺沒有爲每種集合類型的每個變體提供單獨的接口。(這種變體可能包括不可變的,固定大小的和僅附加的。)相反,每個接口中的修改操作都指定爲可選 -給定的實現可能選擇不支持所有操作。如果調用了不受支持的操作,則集合將引發 UnsupportedOperationException。實現負責記錄它們支持哪些可選操作。所有Java平臺的通用實現都支持所有可選操作。

下表描述了核心收集接口:

Collection—集合層次結構的根。集合表示一組稱爲其元素的對象。該Collection接口是所有集合實現,用來傳遞周圍集合和最大時,通用需要操縱它們的最小公分母。某些類型的集合允許重複的元素,而其他類型則不允許。一些是有序的,而其他則是無序的。Java平臺不提供此接口的任何直接實現,但是提供更具體的子接口(例如Set和)的實現List。另請參見 “收集接口”部分。

Set

Set—不能包含重複元素的集合。該接口對數學集合的抽象進行建模,並用於表示集合,例如包含撲克手的紙牌,構成學生日程的課程或機器上運行的過程。另請參見 “設置接口”部分。

List

List—有序集合(有時稱爲sequence)。List可以包含重複元素。List通常,用戶可以精確控制列表中每個元素的插入位置,並可以通過其整數索引(位置)訪問元素。如果您曾經使用過Vector,您將熟悉的一般風格List。另請參見 “列表接口”部分。

Queue

Queue—用於在處理之前保存多個元素的集合。除了基本Collection操作外,a Queue還提供其他插入,提取和檢查操作。
隊列通常但不一定以FIFO(先進先出)的方式對元素進行排序。優先隊列除外,它們根據提供的比較器或元素的自然順序對元素進行排序。無論使用哪種順序,隊列的開頭都是將通過調用remove或刪除的元素poll。在FIFO隊列中,所有新元素都插入隊列的尾部。其他種類的隊列可能使用不同的放置規則。每個Queue實現都必須指定其排序屬性。另請參見 “隊列接口”部分。

Deque

Deque—用於在處理之前保存多個元素的集合。除了基本Collection操作外,a Deque還提供其他插入,提取和檢查操作。
雙端隊列既可以用作FIFO(先進先出)又可以用作LIFO(先進先出)。在雙端隊列中,可以在兩端插入,檢索和刪除所有新元素。另請參見 雙端隊列接口部分。

Map

Map—將鍵映射到值的對象。一個Map不能包含重複鍵; 每個鍵最多可以映射到一個值。如果您曾經使用過Hashtable,則已經熟悉的基礎知識Map。另請參見 “地圖界面”部分。
最後兩個核心集合接口只是分類的版本Set和Map:

SortedSet

SortedSet— Set保持其元素升序排列的。提供了一些其他操作以利用訂購的優勢。排序的集合用於自然排序的集合,例如單詞列表和成員資格列表。另請參見 SortedSet接口部分。

SortedMap

SortedMap—一個Map以升序順序維護其映射的。這是的Map類似物SortedSet。排序後的地圖用於鍵/值對的自然排序集合,例如字典和電話簿。另請參見 SortedMap接口部分。
要了解排序的接口如何維護其元素的順序,請參見“ 對象排序”部分。

發佈了76 篇原創文章 · 獲贊 9 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章