java集合類詳解和使用,java集合類型

在編程時,可以使用數組來保存多個對象,但數組長度不可變化,一旦在初始化數組時指定了數組長度,這個數組長度就是不可變的。如果需要保存數量變化的數據,數組就有點無能為力了。而且數組無法保存具有映射關係的數據,如成績表為語文——79,數學——80,這種數據看上去像兩個數組,但這兩個數組的元素之間有一定的關聯關係。

為了保存數量不確定的數據,以及保存具有映射關係的數據(也被稱為關聯數組),Java提供了集合類。集合類主要負責保存、盛裝其他數據,因此集合類也被稱為容器類。Java所有的集合類都位於java.util包下,提供了一個表示和操作對象集合的統一構架,包含大量集合介面,以及這些介面的實現類和操作它們的演算法。

集合類和數組不一樣,數組元素既可以是基本類型的值,也可以是對象(實際上保存的是對象的引用變數),而集合里只能保存對象(實際上只是保存對象的引用變數,但通常習慣上認為集合里保存的是對象)。

Java集合類型分為Collection和Map,它們是Java集合的根介面,這兩個介面又包含了一些子介面或實現類。圖1和圖2分別為Collection和Map的子介面及其實現類。

Java集合詳解

Map介面結構

Java集合詳解

在圖1和圖2中,黃色塊為集合的介面,藍色塊為集合的實現類。表1介紹了這些介面的作用。

表1Java集合介面的作用

介面名稱作 用
Iterator 介面集合的輸出介面,主要用於遍歷輸出(即迭代訪問)Collection 集合中的元素,Iterator 對象被稱之為迭代器。迭代器介面是集合介面的父介面,實現類實現 Collection 時就必須實現 Iterator 介面。
Collection 介面是 List、Set 和 Queue 的父介面,是存放一組單值的最大介面。所謂的單值是指集合中的每個元素都是一個對象。一般很少直接使用此介面直接操作。
Queue 介面Queue 是 Java 提供的隊列實現,有點類似於 List。
Dueue 介面是 Queue 的一個子介面,為雙向隊列。
List 介面是最常用的介面。是有序集合,允許有相同的元素。使用 List 能夠精確地控制每個元素插入的位置,用戶能夠使用索引(元素在 List 中的位置,類似於數組下標)來訪問 List 中的元素,與數組類似。
Set 介面不能包含重複的元素。
Map 介面是存放一對值的最大介面,即介面中的每個元素都是一對,以 key➡value 的形式保存。

對於Set、List、Queue和Map這4種集合,Java最常用的實現類分別是HashSet、TreeSet、ArrayList、ArrayDueue、LinkedList和HashMap、TreeMap等。表2介紹了集合中這些常用的實現類。

表2Java集合實現類的作用

類名稱作用
HashSet為優化査詢速度而設計的 Set。它是基於 HashMap 實現的,HashSet 底層使用 HashMap 來保存所有元素,實現比較簡單
TreeSet實現了 Set 介面,是一個有序的 Set,這樣就能從 Set 裡面提取一個有序序列
ArrayList一個用數組實現的 List,能進行快速的隨機訪問,效率高而且實現了可變大小的數組
ArrayDueue是一個基於數組實現的雙端隊列,按「先進先出」的方式操作集合元素
LinkedList對順序訪問進行了優化,但隨機訪問的速度相對較慢。此外它還有 addFirst()、addLast()、getFirst()、getLast()、removeFirst() 和 removeLast() 等方法,能把它當成棧(Stack)或隊列(Queue)來用
HsahMap按哈希演算法來存取鍵對象
TreeMap可以對鍵對象進行排序

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/229563.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-10 12:30
下一篇 2024-12-10 12:30

相關推薦

發表回復

登錄後才能評論