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-hk/n/229563.html

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

相關推薦

發表回復

登錄後才能評論