來源:Medium 本教學將幫助您更能理解 Java Collection Framework 中包含的各種類別和介面的工作原理。 Java Collection 是一個框架,它提供了一個統一的架構來儲存和管理一組物件。它的核心是一組類別和接口,提供了用 Java 語言表示和操作對象集合的標準方法。該框架還有助於實現常用的資料結構,例如列表、集合和映射。Java 集合框架包括多個介面和類別。以下是其中一些的列表:
介面
Java 集合框架中的介面定義了可以對集合執行的一般行為和操作。這包括新增或刪除項目、重複集合中的項目等等。- Collection:集合層次結構中的根接口,表示一組稱為元素的物件。
- 列表:允許重複的有序元素集合。
- Set:不允許重複的元素的集合。
- Map:鍵值對的集合,其中每個鍵都是唯一的。
- 佇列:佇列是一種資料結構,用於以先進先出(FIFO)方式儲存元素。
收藏
集合是一組稱為其元素的物件。這是一個可以包含對其他物件的參考的物件。Collection 介面是集合層次結構的根。這是 Java 集合框架中所有集合的基本介面。它定義了所有集合中必須實作的基本方法,例如add()、remove()和contains()。以下是在 Java 集合框架中使用集合的範例。這裡 Collection 介面用於新增和刪除集合中的元素:import java.util.Collection;
import java.util.ArrayList;
public class CollectionExample {
public static void main(String[] args) {
// Создаем новую коллекцию
Collection<String> stringCollection = new ArrayList<>();
// Добавляем несколько элементов в коллекцию
stringCollection.add("hello");
stringCollection.add("world");
stringCollection.add("foo");
stringCollection.add("bar");
// Печатаем число элементов в коллекции
System.out.println("Number of elements: " + stringCollection.size());
// Удаляем элемент из коллекции
stringCollection.remove("foo");
// Опять печатаем число элементов в коллекции
System.out.println("Number of elements: " + stringCollection.size());
}
}
輸出是:
元件數量:4 元件數量:3
如您所看到的,Collection 介面是一種對物件集合執行常見操作的簡單便捷的方法。在 Java 中使用集合時,它經常被用作起點。Java 集合框架包括幾個定義不同類型集合的常見行為的介面。其中一些是java.util.Collection介面組的一部分:
- java.util.List
- java.util.set
- java.util.Queue
java.util.List
列表是物件的有序集合,其中的每個元素在列表中佔據特定的位置。List 介面擴充了 Collection 接口,並新增了多種處理清單的方法,例如按元素在清單中的位置存取元素的方法以及搜尋和排序清單的方法。清單可以包含重複的元素,這些元素可以透過它們在清單中的位置來存取。以下是使用 List 介面新增、刪除和存取清單中的項目的範例:import java.util.List;
import java.util.ArrayList;
public class ListExample {
public static void main(String[] args) {
// Создаем новый список
List<String> stringList = new ArrayList<>();
// Добавляем несколько элементов в список
stringList.add("India");
stringList.add("UAE");
stringList.add("London");
stringList.add("US");
// Печатаем первый элемент в списке
System.out.println("First element: " + stringList.get(0));
// Удаляем второй элемент из списка
stringList.remove(1);
// Печатаем второй элемент в списке
System.out.println("Second element: " + stringList.get(1));
}
}
結論:
第一元素:印度 第二元素:倫敦
如上所示,List 介面提供了一種處理有序元素集合的便捷方法。當您需要維護集合中元素的順序或需要透過清單中的索引存取元素時,通常會使用它。
java.util.Set
Java Collection Framework 中的 Set 是唯一元素的無序集合,不允許重複元素。Set 介面擴充了 Collection 介面並新增了多個方法,例如檢查元素是否在集合中的方法以及在集合中新增和刪除元素的方法。以下是使用 Set 介面在 Java Collection Framework 中的集合中新增和刪除元素的範例:import java.util.Set;
import java.util.HashSet;
public class SetExample {
public static void main(String[] args) {
// Создаем новый set
Set<String> stringSet = new HashSet<>();
// Добавляем несколько элементов в set
stringSet.add("Jan");
stringSet.add("Feb");
stringSet.add("March");
stringSet.add("April");
// Проверяем наличие в set element "March"
if (stringSet.contains("March")) {
System.out.println("The set contains the element 'March'");
}
// Удаляем элемент "April" из set
stringSet.remove("April");
// Опять проверяем наличие element "April" в set
if (!stringSet.contains("April")) {
System.out.println("The set no longer contains the element 'April'");
}
}
}
結論:
該集合包含元素“March” 該集合不再包含元素“April”
java.util.Queue
佇列是一種資料結構,用於以先進先出 (FIFO) 順序儲存元素。這意味著新增到佇列中的第一個元素將是第一個被刪除的元素。以下是如何在 Java Collection Framework 中使用佇列的範例:// Creation очереди
Queue<String> queue = new LinkedList<>();
// Добавление элементов в очередь
queue.add("apple");
queue.add("banana");
queue.add("orange");
// Печатаем очередь
System.out.println("Queue: " + queue);
// Удаляем элемент из очереди
String element = queue.remove();
System.out.println("Removed element: " + element);
// Печатаем обновленную очередь
System.out.println("Queue: " + queue);
在此範例中,我們建立了一個字串佇列並向其中添加了三個元素:「apple」、「banana」和「orange」。然後我們列印隊列以查看其當前狀態。接下來,我們從佇列中刪除該元素並將其列印到控制台。最後,我們列印更新後的佇列,以確保刪除的元素不再在佇列中。
地圖
Java Collection Framework 中的java.util.Map介面用於將鍵對應到值。它允許您將元素儲存為鍵值對,並提供存取、修改和迭代映射中的元素的方法。下面是使用Map介面的範例:// Создаем Map
Map<String, Integer> map = new HashMap <>();
// Добавляем элементы в Map
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
// Печать Map
System.out.println("Map: " + map);
// Получаем meaning для определенного ключа
int value = map.get( "banana" );
System.out.println("Value for 'banana': " + value);
// Удаляем элемент из Map
map.remove("orange");
// Печать обновленной карты
System.out.println( "Map: " + map);
在此範例中,我們透過新增三個元素來建立字串和整數的對應:「apple」符合 1,「banana」符合 2,「orange」符合 3。然後我們列印該對應以查看其目前意義。之後,我們取得“banana”鍵的值並將其列印到控制台。最後,我們從映射中刪除“orange”的鍵值對並列印更新後的映射,以查看刪除的元素不再存在。
課程
類別是集合介面的具體實作。它提供了框架中介面定義的常見行為和操作的具體實作。- ArrayList : List介面的實現,具有可調整大小的陣列。
- LinkedList:雙向鍊錶,List和Deque介面的實作。
- HashSet : Set的一種實現,使用哈希表進行儲存。
- TreeSet : Set的一種實現,使用樹進行儲存。
- HashMap : Map的實現,使用哈希表進行儲存。
數組列表
Java 集合中的java.util.ArrayList類別用於在清單中儲存可調整大小的元素陣列。它是java.util.List介面的廣泛使用的實現,它使用陣列來儲存元素,並提供用於存取、修改和迭代列表中的元素的有效方法。java.util.ArrayList類別提供對其元素的快速隨機訪問,但在隨機位置插入和刪除速度較慢。以下是 Java Collection Framework 中使用ArrayList類別的範例:// Создаем array list
List<String> list = new ArrayList<>();
// Добавляем элементы в array list
list.add("qa");
list.add("devops");
list.add("dev");
// Печатаем array list
System.out.println("Array list: " + list);
// Доступ к элементу по определенному индексу
String element = list.get(1);
System.out.println("Element at index 1: " + element);
// Удаление element из the array list
list.remove(1);
// Print the updated array list
System.out.println("Array list: " + list);
如您所見,我們創建了一個字串陣列並向其中添加了三個元素:「qa」、「devops」和「dev」。然後我們列印數組列表以查看其當前狀態。之後,我們存取索引 1 處的元素並將其列印到控制台。最後,我們從陣列列表中刪除索引 1 處的元素,並列印更新後的陣列列表,以確保刪除的元素不再位於列表中。
鍊錶
Java Collection Framework 中的java.util.LinkedList類別繼承自AbstractList類,並實作List和Deque介面。它提供了在清單開頭和結尾添加、刪除和存取元素的有效方法。這個類別也是List介面的實現,它使用雙向鍊錶來儲存元素。它提供在任意位置的快速插入和刪除,但對其元素的隨機存取速度較慢。以下是如何使用Java Collection Framework 中的 LinkedList類別的範例:// Создаем linked list
List<String> list = new LinkedList<>();
// Добавляем элементы в linked list
list.add("selenium");
list.add("cypress");
list.add("playwright");
// Печатаем linked list
System.out.println("Linked list: " + list);
// Добавляем элемент в начало списка
list.add(0, "webdriver.io");
// Печатаем обновленный linked list
System.out.println("Linked list: " + list);
// Удаляем первый элемент в списке
list.remove(0);
// Еще раз печатаем обновленный linked list
System.out.println("Linked list: " + list);
在此範例中,我們建立了一個字串連結清單並向其中添加了三個元素:「selenium」、「cypress」和「playwright」。然後我們列印鍊錶以查看其當前狀態。接下來,我們將元素「webdriver.io」新增到清單的開頭並列印更新後的連結清單。最後,我們從鍊錶中刪除第一個元素,並再次列印更新後的鍊錶,可以看到被刪除的元素已經不在鍊錶中了。
哈希集
Java Collection Framework 中的java.util.HashSet類別用於儲存集合中唯一元素的集合。它提供了java.util.Set介面的基於哈希表的實作。它還提供快速插入、刪除和搜索,但不保留其元素的順序。下面是在 Java Collection Framework 中 使用HashSet類別的範例:// Создаем hash set
Set<String> set = new HashSet<>();
// Добавляем элементы в hash set
set.add("rose");
set.add("lily");
set.add("lotus");
// Попытка добавить повторяющийся элемент
set.add("rose");
// Печатаем hash set
System.out.println("Hash set: " + set);
// Удаляем элемент из hash set
set.remove("lily");
// Печать обновленного hash set
System.out.println("Hash set: " + set);
在這裡,我們創建了一個字串雜湊集,並向其中添加了三個元素:「rose」、「lily」和「lotus」。然後我們嘗試再次添加元素“rose”,但由於哈希集不允許重複,因此不會添加它。之後,我們列印哈希集以查看其當前狀態。然後,我們從集合中刪除元素“lily”並列印集合的更新哈希,以查看刪除的元素不再在集合中。
樹集
Java Collection Framework 中的java.util.TreeSet類別用於儲存按升序排序的集合中唯一元素的集合。它提供了java.util.Set介面的基於樹的實作來儲存元素,而不允許重複元素。該類別提供快速插入、刪除和搜索,並根據元素的自然順序或比較器維護其元素的順序。以下是如何在 Java 集合框架中 使用TreeSet類別的範例:// Создаем tree set
Set<String> set = new TreeSet<>();
// Добавляем элементы в tree set
set.add("apple");
set.add("banana");
set.add("orange");
// Попытка добавить повторяющийся элемент
set.add("apple");
// Печатаем tree set
System.out.println("Tree set: " + set);
// Удаляем элемент из tree set
set.remove("banana");
// Печатаем обновленный tree set
System.out.println("Tree set: " + set);
在此範例中,我們建立一個字串樹集並在其中加入三個元素:「apple」、「banana」和「orange」。然後我們嘗試再次添加“apple”元素,但由於樹集不允許重複,因此不會添加它。之後,我們列印樹集以查看其當前狀態。由於樹集是按升序排序的,因此元素將按以下順序列印:“apple”,“banana”和“orange”。然後,我們從集合中刪除元素“banana”並列印更新後的樹集,以查看刪除的元素不再在集合中。
哈希映射
Java Collection Framework 中的java.util.HashMap類別用於在映射中儲存鍵到值的對應。它提供了java.util.Map介面的基於哈希表的實現,並允許將元素儲存為鍵值對。該類別提供快速插入、刪除和搜索,但不保留其元素的順序。以下是如何使用Java Collection Framework 中的 HashMap類別的範例:// Создаем hash map
Map<String, Integer> map = new HashMap<>();
// Добавляем элементы в hash map
map.put("apple", 1);
map.put("banana", 2);
map.put("orange", 3);
// Печатаем hash map
System.out.println("Hash map: " + map);
// Получаем meaning для определенного ключа
int value = map.get("banana");
System.out.println("Value for 'banana': " + value);
// Удаляем элемент из hash map
map.remove("orange");
// Печатаем обновленный hash map
System.out.println("Hash map: " + map);
在此範例中,我們建立一個整數字串的雜湊映射,並向其中添加三個元素:「apple」匹配1,「banana」匹配2,「orange」匹配3。然後我們列印哈希映射以查看其當前狀態。之後,我們取得“banana”鍵的值並將其列印到控制台。最後,我們從哈希映射中刪除“orange”的鍵值對,並列印更新的雜湊映射,以查看刪除的元素不再在其中。
GO TO FULL VERSION