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()用法及代码示例
注:本文由纯净天空筛选整理自suman_ptnl大神的英文原创作品 Convert HashSet to TreeSet in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。