Java LinkedHashSet 類別:初學者的友善指南
介紹
你好,未來的 Java 巫師!今天,我們將進入 Java LinkedHashSet 的精彩世界。如果你以前從未寫過一行代碼,也別擔心——我將成為你的友好指南,我們將一起逐步探索這個主題。
想像一下,你正在為你的專輯收集獨特的貼紙,但你希望記住你獲得它們的順序。這基本上就是 LinkedHashSet 在 Java 中所做的——它是一個存儲獨特元素(就像你的貼紙)並記住你添加它們的順序的集合。很酷,對吧?
讓我們深入了解一下這個神奇的集合是如何工作的!
類別聲明
在 Java 中,LinkedHashSet 是 java.util 包的一部分。要使用它,我們需要首先導入它。以下是導入的方法:
import java.util.LinkedHashSet;
現在,讓我們創建我們的第一個 LinkedHashSet:
LinkedHashSet<String> myStickers = new LinkedHashSet<>();
在這個例子中,我們創建了一個將存儲 String 對象的 LinkedHashSet。<String>
部分告訴 Java 我們的集合將包含什麼類型的元素。你可以將 String 替換為任何其他類型,例如 Integer 或甚至你自己的自定義類!
參數
LinkedHashSet 沒有自己特定的參數,但它從其父類繼承了一些。其中最重要的是:
- initialCapacity: LinkedHashSet 的初始容量。
- loadFactor: 在 LinkedHashSet 放大之前可以達到的滿載度的度量。
現在不用太擔心這些。Java 設定了良好的默認值,所以除非你要做非常特定的事情,否則不需要指定它們。
類別構造器
LinkedHashSet 提供了多個構造器。讓我們看看最常見的一些:
-
預設構造器:
LinkedHashSet<String> set1 = new LinkedHashSet<>();
這創建了一個空的 LinkedHashSet,具有默認的初始容量(16)和負載因子(0.75)。
-
帶有初始容量的構造器:
LinkedHashSet<String> set2 = new LinkedHashSet<>(20);
這創建了一個空的 LinkedHashSet,具有 20 的初始容量。
-
帶有另一個集合的構造器:
ArrayList<String> list = new ArrayList<>(); list.add("紅色"); list.add("藍色"); LinkedHashSet<String> set3 = new LinkedHashSet<>(list);
這創建了一個 LinkedHashSet,其中包含來自給定集合(在這裡是 list)的所有元素。
類別方法
現在,讓我們看看 LinkedHashSet 一些最有用的方法。我將在表格中列出它們以方便參考:
方法 | 描述 |
---|---|
add(E e) | 如果尚不存在,則將指定的元素添加到集合中 |
remove(Object o) | 如果存在,則從集合中刪除指定的元素 |
contains(Object o) | 如果集合包含指定的元素,則返回 true |
size() | 返回集合中的元素數量 |
clear() | 從集合中刪除所有元素 |
isEmpty() | 如果集合不包含元素,則返回 true |
讓我們看看這些方法是如何工作的:
LinkedHashSet<String> colors = new LinkedHashSet<>();
// 添加元素
colors.add("紅色");
colors.add("綠色");
colors.add("藍色");
System.out.println("顏色: " + colors); // 輸出:顏色: [紅色, 綠色, 藍色]
// 添加重複項(不會被添加)
colors.add("紅色");
System.out.println("添加重複項後的顏色: " + colors); // 輸出:添加重複項後的顏色: [紅色, 綠色, 藍色]
// 檢查元素是否存在
System.out.println("包含黃色? " + colors.contains("黃色")); // 輸出:包含黃色? false
// 刪除元素
colors.remove("綠色");
System.out.println("刪除綠色後的顏色: " + colors); // 輸出:刪除綠色後的顏色: [紅色, 藍色]
// 獲取大小
System.out.println("顏色數量: " + colors.size()); // 輸出:顏色數量: 2
// 檢查集合是否為空
System.out.println("集合是否為空? " + colors.isEmpty()); // 輸出:集合是否為空? false
// 清除集合
colors.clear();
System.out.println("清除後的顏色: " + colors); // 輸出:清除後的顏色: []
獲取 LinkedHashSet 迭代條目的 Spliterator() 示例
現在,讓我們看一下更先進的功能:Spliterator。它就像一個超強大的迭代器,可以用於並行處理。如果這聽起來很複雜,別擔心——我們會保持簡單!
以下是如何使用 LinkedHashSet 的 Spliterator:
LinkedHashSet<String> fruits = new LinkedHashSet<>();
fruits.add("蘋果");
fruits.add("香蕉");
fruits.add("櫻桃");
fruits.add("日期");
Spliterator<String> spliterator = fruits.spliterator();
// 使用 Spliterator 列印元素
spliterator.forEachRemaining(fruit -> System.out.println("水果: " + fruit));
此代碼將輸出:
水果: 蘋果
水果: 香蕉
水果: 櫻桃
水果: 日期
spliterator()
方法返回一個 Spliterator,我們可以使用它來迭代我們的 LinkedHashSet。forEachRemaining()
方法 將給定的操作應用於每個元素。在這裡,我們正在列印每種水果。
以上就是了!你剛剛學會了 Java 的 LinkedHashSet 的基礎知識。記住,練習成就完美,所以不要害怕實驗這些概念。嘗試創建自己的 LinkedHashSet 並擺弄其方法。在你知道之前,你將成為 LinkedHashSet 大師!
編程愉快,未來的 Java 明星!?
Credits: Image by storyset