Java LinkedHashSet 類別:初學者的友善指南

介紹

你好,未來的 Java 巫師!今天,我們將進入 Java LinkedHashSet 的精彩世界。如果你以前從未寫過一行代碼,也別擔心——我將成為你的友好指南,我們將一起逐步探索這個主題。

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 沒有自己特定的參數,但它從其父類繼承了一些。其中最重要的是:

  1. initialCapacity: LinkedHashSet 的初始容量。
  2. loadFactor: 在 LinkedHashSet 放大之前可以達到的滿載度的度量。

現在不用太擔心這些。Java 設定了良好的默認值,所以除非你要做非常特定的事情,否則不需要指定它們。

類別構造器

LinkedHashSet 提供了多個構造器。讓我們看看最常見的一些:

  1. 預設構造器:

    LinkedHashSet<String> set1 = new LinkedHashSet<>();

    這創建了一個空的 LinkedHashSet,具有默認的初始容量(16)和負載因子(0.75)。

  2. 帶有初始容量的構造器:

    LinkedHashSet<String> set2 = new LinkedHashSet<>(20);

    這創建了一個空的 LinkedHashSet,具有 20 的初始容量。

  3. 帶有另一個集合的構造器:

    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