Java TreeSet 特殊方法


Java 環境中的 TreeSet 類是一個主要用於儲存樹的容器介面集。此類中有兩種不同的方式。

  • AbstractSet 類 - 它是 Java 集合框架的一部分,是一個集合介面。

  • NavigableSet 介面 - 它是 Java 集合中的一個可導航集合集。

在 Java 環境中,TreeSet 繼承了 AbstractSet 類並貫穿 NavigableSet。TreeSet 實現的一些重要方面 -

  • 它以唯一資料作為輸入。

  • 不儲存資料的插入順序。

  • 按升序對元素進行排序。

  • 執行緒不安全。

讓我們進一步討論 TreeSet 類的更多標準。

什麼是 TreeSet 類以及它是如何工作的?

  • TreeSet 類提供了 Java 集合中樹資料結構的演算法。這是 Java 中 SortedSet 介面的一部分。排序以自然方式維護,並提供顯式比較器。

  • 此過程使用紅黑樹;這是一種自平衡二叉搜尋樹模型。

  • 透過這種特殊的樹方法,搜尋、刪除、新增消耗 O(log(N)) 時間操作可以得到處理。

  • 在 TreeSet 類中,同步始終以手動方式完成。這意味著多個執行緒訪問一組樹,然後對其進行修改。

  • 同步某些元素後,它自然地封裝了集合。

  • Java TreeSet 的訪問和檢索工作相對較快。對於執行搜尋操作以訪問大量資料來說,它是一個不錯的選擇。

  • 在此 TreeSet 中,不允許任何重複元素。

  • TreeSet(): 將建立一個新的空 TreeSet,並根據自然排序進行排序。

  • TreeSet(Collection<? extends E> c): 將建立一個新的 TreeSet,其中包含集合 c 中提到的元素,並且它們將根據自然排序進行排序。

  • TreeSet(Comparator<? super E> comparator): 將建立一個新的空 TreeSet,並根據提到的比較器進行排序。

  • TreeSet(SortedSet<E> s): 將建立一個新的 TreeSet,其中包含排序集 s 中提到的元素,其排序順序與其相同。

演算法

  • 步驟 1 - 建立一個新的 TreeSet 類。

  • 步驟 2 - 擴充套件 AbstractSet。

  • 步驟 3 - 將 NavigableSet 新增到其中。

  • 步驟 4 - 使用輸入資料執行排序。

  • 步驟 5 - 收集新的資料集。

  • 步驟 6 - 迭代整個資料集。

TreeSet 特殊方法 - 語法

public class TreeSet<Element E> extends AbstractSet<Element E> implements NavigableSet<Element E>, Cloneable, Serializable

TreeSet 類的樹對映包含兩個介面。

  • SortedSet

  • NavigableSet

資料元素按升序儲存,並透過過程進行導航。

在 Java 中實現 TreeSet 特殊方法的方法

  • 方法 1 - 使用 Floor 方法的 TreeSet 特殊方法

  • 方法 2 - 使用 Lower 方法查詢元素

  • 方法 3 - 使用 ceiling() 方法查詢最小元素

  • 方法 4 - 使用 higher() 方法從樹中查詢資料

Floor 方法

floor() 方法;返回 floor 中存在的最大元素,其語法為“treeSetObject.floor(argument) ;”。此方法查詢小於或等於輸入元素的元素。當方法無法根據輸入找到元素時,它將返回 null。

示例 1

import java.util.Set;
import java.util.TreeSet;
public class Floorbytutorialp {
   public static void main(String[] args){
      TreeSet<Integer> treeSet= new TreeSet<>(Set.of(07, 16, 10, 1997, 2001, 2022));
      System.out.println("Tree set = " + treeSet);
      System.out.println("floor(16) = "+ treeSet.floor(16));
      System.out.println("floor(07) = "+ treeSet.floor(07));
   }
}

輸出

Tree set = [7, 10, 16, 1997, 2001, 2022]
floor(16) = 16
floor(07) = 7

Lower 方法

Lower() 方法返回嚴格小於給定輸入元素的最大元素。如果為 null,則列表中不存在元素。

此處遵循的語法為

treeSetObject.lower(argument)

示例 2

import java.util.*;  
public class TreeSetLowerMethd {  
   public static void main(String as[]){  
      TreeSet <Integer>obj = new TreeSet<Integer>();  
      obj.add(16);     
      obj.add(07);  
      obj.add(10);  
      obj.add(97);  
      obj.add(2001);  
      System.out.println("TreeSet: " +obj);  
      System.out.println("lowest value then 7 : " +obj.lower(7));  
   }  
}

輸出

TreeSet: [7, 10, 16, 97, 2001]
lowest value then 7 : null

使用 ceiling() 方法查詢最小元素

在 Java TreeSet 中,ceiling() 返回最小的資料作為輸出。

語法為“treeSetObject.ceiling(argument) ;”。在此方法中,輸出大於或等於輸入元素,如果不是,則返回 null。

示例 3

import java.util.Set;
import java.util.TreeSet;
public class GFG {
   public static void main(String[] args){
      TreeSet<Integer> treeSet= new TreeSet<>(Set.of(07, 16, 10, 2001, 1997));
      System.out.println("tree set = " + treeSet);
      System.out.println("ceiling(60) = "+ treeSet.ceiling(60));
      System.out.println("ceiling(70) = "+ treeSet.ceiling(70));
      System.out.println("ceiling(10) = "+ treeSet.ceiling(10));
   }
}

輸出

tree set = [7, 10, 16, 1997, 2001]
ceiling(60) = 1997
ceiling(70) = 1997
ceiling(10) = 10

使用 higher() 方法從樹中查詢資料

TreeSet 方法中的 higher() 方法返回一個值小於輸入的值。如果未找到所需資料,它將返回 NULL。

此處遵循的語法為“treeSetObject.higher(argument) ;”。

示例 1

import java.io.*;
import java.util.Set;
import java.util.TreeSet;
public class treeclasstp {
   public static void main(String[] args){
      TreeSet<Integer> treeSet= new TreeSet<>(Set.of(10, 07, 16, 2001, 97));
      System.out.println("tree set = " + treeSet);
      System.out.println("higher(1000) = "+ treeSet.higher(1000));
      System.out.println("higher(80) = "+ treeSet.higher(80));
      System.out.println("higher(5) = "+ treeSet.higher(5));
   }
}

輸出

tree set = [7, 10, 16, 97, 2001]
higher(1000) = 2001
higher(80) = 97
higher(5) = 7

結論

Java 環境中提供了許多型別的 TreeSet 特殊方法。在本文中,我們討論了其中一些方法,並根據其語法構建了一些 Java 程式碼。

更新於: 2023 年 4 月 10 日

154 次檢視

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告