Java TreeSet 類別:初學者指南

介紹

你好,未來的 Java 程式設計師!今天,我們將進入 Java TreeSet 的精彩世界。如果你從未寫過一行程式碼,也別擔心 - 我將成為你的友好指南,我們將一起逐步探討這個主題。

Java - TreeSet

想像一下你在整理書架。你希望按特定的順序排列你的書籍,也許是按書名字母順序。這正是 Java 中的 TreeSet 對數據所做的 - 它自動保持東西的組織和排序。很酷,對吧?

類別聲明

讓我們從基礎開始。在 Java 中,TreeSet 是這樣聲明的:

import java.util.TreeSet;

TreeSet<E> treeSet = new TreeSet<E>();

在這裡,'E' 是你想要存儲的元素類型的佔位符。它可以是 Integer、String 或任何其他物件類型。例如:

TreeSet<String> bookTitles = new TreeSet<String>();

這將創建一個將書名作為字符串存儲的 TreeSet。

參數

TreeSet 沒有自己的參數,但它實現了 NavigableSet 介面,該介面擴展了 SortedSet。這意味著它繼承了一些允許有效導航和排序的行為。

類別構造器

TreeSet 提供了幾個構造器。讓我們看看最常見的幾個:

  1. 預設構造器:

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

    這將創建一個空的 TreeSet,該 TreeSet 將以自然順序對元素進行排序。

  2. 帶有 Comparator 的構造器:

    TreeSet<String> set2 = new TreeSet<String>(Comparator.reverseOrder());

    這將創建一個將使用指定的 Comparator 進行排序的 TreeSet。

  3. 帶有 Collection 的構造器:

    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers.add(5);
    numbers.add(2);
    numbers.add(8);
    TreeSet<Integer> set3 = new TreeSet<Integer>(numbers);

    這將創建一個包含來自給定 Collection 的所有元素的 TreeSet。

類別方法

TreeSet 提供了各種有用的方法。以下是一些關鍵方法的表格:

方法 描述
add(E element) 將指定的元素添加到集合中
clear() 從集合中刪除所有元素
contains(Object o) 如果集合包含指定的元素,則返回 true
first() 返回集合中的第一個(最低)元素
last() 返回集合中的最後一個(最高)元素
remove(Object o) 從集合中刪除指定的元素
size() 返回集合中的元素數量

繼承的方法

TreeSet 從幾個介面和類別中繼承了方法,包括 AbstractSet、NavigableSet 和 SortedSet。這使它擁有了一套豐富的功能,用於處理排序數據。

將條目添加到 TreeSet 示例

讓我們通過一個有趣的示例來將我們的知識付諸實踐。我們將創建一個 TreeSet 來按照他們的力量等級組織一個超級英雄列表:

import java.util.TreeSet;

public class SuperheroPowerRanking {
public static void main(String[] args) {
TreeSet<String> heroes = new TreeSet<String>();

// 將超級英雄添加到我們的 TreeSet 中
heroes.add("Superman: 100");
heroes.add("Batman: 90");
heroes.add("Wonder Woman: 95");
heroes.add("Flash: 85");
heroes.add("Aquaman: 80");

System.out.println("根據力量排名的超級英雄:");
for (String hero : heroes) {
System.out.println(hero);
}

System.out.println("\n最強大的英雄:" + heroes.last());
System.out.println("最弱的英雄:" + heroes.first());
}
}

輸出

當我們運行此代碼時,我們會得到以下結果:

根據力量排名的超級英雄:
Aquaman: 80
Batman: 90
Flash: 85
Superman: 100
Wonder Woman: 95

最強大的英雄:Wonder Woman: 95
最弱的英雄:Aquaman: 80

讓我們來解釋一下這裡發生了什麼:

  1. 我們創建了一個名為 'heroes' 的 TreeSet 來存儲我們的超級英雄力量排名。
  2. 我們使用 add() 方法將超級英雄添加到集合中。
  3. TreeSet 自動按字母順序對條目進行排序(因為我們使用的是 Strings)。
  4. 我們使用 for-each 迴圈按排序順序列印所有英雄。
  5. 我們使用 last() 獲取最後一個(按字母順序)英雄,並使用 first() 獲取第一個。

請注意,英雄們是按他們的名字而不是力量等級按字母順序排序的。如果我們想按力量等級排序,我們需要使用自定義 Comparator - 但這是另一天的課程!

總結來說,TreeSet 是一個強大的工具,用於在 Java 中保持數據排序。無論你是排名超級英雄、整理書籍收藏,還是管理任何需要保持秩序的其他類型的數據,TreeSet 都能夠幫助你。

記住,練習使完美。嘗試創建自己的 TreeSets,用不同的數據類型。也許可以排名你喜歡的電影,或者排序一個朋友生日列表。你越多使用它,你就會越來越舒服。開心編程,未來的 Java 大師們!

Credits: Image by storyset