Hashset:Java中的Hashset一般用於搜索、插入、刪除等操作。這些操作平均需要恒定的時間。 HashSet 比 TreeSet 快。 HashSet 是使用哈希表實現的。
TreeSet:Java 中的 TreeSet 查找、插入和刪除的時間為 O(log n),高於 HashSet。但是 TreeSet 保持排序的數據。此外,它還支持 higher()(返回最低高元素)、floor()、ceiling() 等操作。這些操作在 TreeSet 中也是 O(log n),在 HashSet 中不支持。 TreeSet 是使用自平衡二叉搜索樹(Red-Black 樹)實現的。 TreeSet 由 Java 中的 TreeMap 支持。
一般來說,如果您想要一個排序集,那麽最好將元素添加到 HashSet 然後將其轉換為 TreeSet,而不是創建 TreeSet 並向其添加元素。
給定一個 HashSet,任務是將其轉換為 Java 中的 TreeSet。
例子:
HashSet:[Geeks, For, Welcome, To] TreeSet:[For, Geeks, To, Welcome] HashSet:[1, 2, 3, 4, 5] TreeSet:[1, 2, 3, 4, 5]
我們可以通過以下方式將 HashSet 轉換為 TreeSet:
- 通過調用參數化構造函數並將哈希集的對象作為參數發送給它。
- 首先,我們必須為哈希集創建一個對象。
- 然後我們必須將所有元素添加到哈希集中。
- 最後,為樹集創建一個對象並將哈希集對象發送給它。
下麵是上述方法的實現:
程序:
import java.util.HashSet; import java.util.Set; import java.util.TreeSet; public class GFG { public static void main(String[] args) { // Get the HashSet Set<String> setobj = new HashSet<>(); setobj.add("Welcome"); setobj.add("To"); setobj.add("Geeks"); setobj.add("For"); setobj.add("Geeks"); System.out.println("HashSet:" + setobj); // Convert the HashSet to TreeSet Set<String> hashSetToTreeSet = new TreeSet<>(setobj); // Print the TreeSet System.out.println("TreeSet:" + hashSetToTreeSet); } }
輸出:HashSet:[Geeks, For, Welcome, To] TreeSet:[For, Geeks, To, Welcome]
- 通過使用 addAll 方法構造包含哈希集中存在的相同元素的樹集。
- 首先,我們必須為哈希集創建一個對象。
- 然後我們必須將所有元素添加到哈希集中。
- 現在為 treeset 創建一個對象。
- 使用 addAll 方法將哈希集的所有元素添加到它。
下麵是上述方法的實現:
程序:
import java.util.HashSet; import java.util.Set; import java.util.TreeSet; public class GFG { public static void main(String[] args) { // Get the HashSet Set<String> setobj = new HashSet<>(); setobj.add("Welcome"); setobj.add("To"); setobj.add("Geeks"); setobj.add("For"); setobj.add("Geeks"); System.out.println("HashSet:" + setobj); // Convert the HashSet to TreeSet Set<String> hashSetToTreeSet = new TreeSet<>(); hashSetToTreeSet.addAll(setobj); // Print the TreeSet System.out.println("TreeSet:" + hashSetToTreeSet); } }
輸出:HashSet:[Geeks, For, Welcome, To] TreeSet:[For, Geeks, To, Welcome]
- 通過使用 for each 循環。(此方法常用於兩種不兼容類型之間的轉換。)
- 首先,我們必須為哈希集創建一個對象。
- 然後我們必須將所有元素添加到哈希集中。
- 現在為 treeset 創建一個對象。
- 最後,通過使用 for each 循環將哈希集的所有元素添加到樹集中。
下麵是上述方法的實現:
程序:
import java.util.HashSet; import java.util.Set; import java.util.TreeSet; public class GFG { public static void main(String[] args) { // Get the HashSet Set<String> setobj = new HashSet<>(); setobj.add("Welcome"); setobj.add("To"); setobj.add("Geeks"); setobj.add("For"); setobj.add("Geeks"); System.out.println("HashSet:" + setobj); // Convert the HashSet to TreeSet Set<String> hashSetToTreeSet = new TreeSet<>(); for (String i:setobj) hashSetToTreeSet .add(i); // Print the TreeSet System.out.println("TreeSet:" + hashSetToTreeSet); } }
輸出:HashSet:[Geeks, For, Welcome, To] TreeSet:[For, Geeks, To, Welcome]
相關用法
- Java HashSet轉ArrayList用法及代碼示例
- Java HashSet轉array用法及代碼示例
- Java Array轉HashSet用法及代碼示例
- Java List轉HashSet用法及代碼示例
- Java ArrayList轉HashSet用法及代碼示例
- Java HashSet contains()用法及代碼示例
- Java HashSet clear()用法及代碼示例
- Java HashSet isEmpty()用法及代碼示例
- Java HashSet iterator()用法及代碼示例
- Java HashSet remove()用法及代碼示例
- Java HashSet size()用法及代碼示例
- Java HashSet add()用法及代碼示例
- Java HashSet clone()用法及代碼示例
- Java HashSet spliterator()用法及代碼示例
- Java ArrayList和HashSet的區別用法及代碼示例
注:本文由純淨天空篩選整理自suman_ptnl大神的英文原創作品 Convert HashSet to TreeSet in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。