在 Java 中的收藏集 Collections in Java

https://dev.to/harshm03/collections-in-java-1p6c

Java 中的 Collections

在 Java 中,”Collections”一詞指的是一個提供架構來存儲和操作對象組的框架。與固定大小的數組不同,Java 的 Collections 可以根據添加或刪除元素動態增長和縮小。Java Collections Framework(JCF)包括界面、實現和算法,使開發人員能夠有效地使用 Collections。

主要界面

Collection:表示一組對象,稱為元素。它是集合層次結構中的根界面。

List:表示元素的有序集合(序列),其中每個元素都有索引。允許重複。

Set:表示不可包含重複元素的集合。它確保沒有兩個元素是相等的。

Map:表示鍵和值之間的映射。每個鍵都是唯一的,並且每個鍵映射到一個值。

Queue:表示專為在處理前保持元素的集合。通常遵循 FIFO(先進先出)順序。

Deque:表示支持在兩端進行元素插入和刪除的線性集合。它代表“雙端隊列”。

主要實現

ArrayList:實現 List,並使用動態數組來存儲元素。它允許快速隨機訪問並且大小可變。

LinkedList:實現 List和 Deque。它在內部使用雙向鏈表,提供有效的插入和刪除。

HashSet:實珽 Set並使用哈希表進行存儲。它不保證元素的順序。

TreeSet:實珽 Set並將元素存儲在排序樹結構(紅黑樹)中。它保持排序順序的元素。

HashMap:實珽 Map並使用哈希表進行存儲。它提供快速檢索和插入的鍵-值對。

TreeMap:實珽 Map並將鍵-值對存儲在排序樹結構(紅黑樹)中。它保持鍵的排序順序。

效用類

Collections:提供對集合的操作的靜態方法,如排序、搜索和同步。

Arrays:提供對數組進行操作的靜態方法(例如排序、搜索)和將數組轉換為集合以及反之亦然。

Java 中的 Collection 界面

Java 中的 Collection 界面作為 Java Collections Framework(JCF)中所有集合的根界面。它定義了所有具體集合類必須支持的基本操作,從而實現不同集合類之間的統一性和互操作性。

常見實現

ArrayList in Java

Java 中的 ArrayList 是 Java Collections Framework 的一部分,實珽了 List 界面。它提供了 List 界面的可變大小的基於數組的實珅,允許在添加或刪除元素時動態調整底層數組的大小。

LinkedList in Java [List Interface]

Java 中的 LinkedList 是 List 界面的一個實珽,使用雙向鏈表來存儲元素。與使用動態數組的 ArrayList 不同,LinkedList 在列表的兩端提供高效的插入和刪除操作,並支持順序訪問。

Queue Interface in Java

Java 中的 Queue 界面代表一個設計用於在處理前保留元素的集合,遵循 FIFO(先進先出)原則。它擴充了 Collection 界面,並為特定順序的添加、刪除和檢查元素提供方法。隊列通常用於任務調度、消息處理和廣度優先搜索算法等任務。

Deque Interface in Java

Java 中的 Deque 界面代表雙端隊列,允許從兩端插入和刪除元素。它擴展了 Queue 界面,並為堆棧式(LIFO)和隊列式(FIFO)操作提供多功能方法。Deque 實珽通常提供比 Queue 實珽更多的功能,並可用於需要高效插入、刪除和遍歷元素的情況。

PriorityQueue in Java [Queue Interface]

Java 中的 PriorityQueue 是 Queue 界面的一個實珽,提供基於優先級的元素排序。PriorityQueue 中的元素根據其自然排序或指定比較器進行排序,並且根據這個排序,最小的元素始終位於隊列的前端。這使 PriorityQueue 適合於根據其優先級級別來處理元素的應用程序。

HashSet in Java [Set Interface]

Java 中的 HashSet 是 Set 界面的實珽,使用哈希表進行存儲。對於基本操作(添加、刪除、包含),如果哈希分佈均勻,HashSet 提供了常數時間性能。HashSet 不保證元素的排序,這使它適用於對元素唯一性更為重要的情況。

TreeSet in Java [Set Interface]

Java 中的 TreeSet 是 SortedSet 界面的實珽,使用自平衡二叉搜索樹(紅黑樹)來存儲元素。它根據自然排序或指定比較器,將元素保持有序。TreeSet 提供對基本操作(添加、刪除、包含)的對數時間複雜度,使其適用於需要對元素進行排序的情況。

Collections Class in Java

Java 中的 Collections 類提供了對集合進行操作的實用方法。它提供了各種靜態方法,用於對集合進行排序、搜索和操作。這些方法對於不特定於任何特定類型集合的操作非常有用,使其能夠有效地處理 Java 中的不同數據結構。

Arrays Class in Java

Java 中的 Arrays 類是 java.util 包的一部分,提供了對數組進行操作的實用方法。它提供了對數組進行各種操作的靜態方法,包括排序、搜索、填充和將數組轉換為集合。這些方法設計用於高效處理不同類型的數組,包括對象數組、原始類型數組和泛型類型數組。

via DEV Community

June 29, 2024 at 01:37PM

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *