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 程式碼。