将 HashSet 转换为 Java 中的 TreeSet
原文:https://www . geesforgeks . org/convert-hashset-to-treeset-in-Java/
Hashset:Hashset 在 Java 中一般用于搜索、插入、删除等操作。这些操作平均需要恒定的时间。HashSet 比 TreeSet 快。HashSet 是使用哈希表实现的。
TreeSet:Java 中的 TreeSet取 O(log n)进行搜索、插入、删除,比 HashSet 高。但是 TreeSet 会保留已排序的数据。此外,它还支持更高的()(返回最少更高的元素)、地板()、天花板()等操作。这些操作在 TreeSet 中也是 O(log n),在 HashSet 中不支持。使用自平衡二叉查找树(红黑树)实现树集。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:
-
By invoking the parameterized constructor and sending object of Hash set as a parameter to it.
- 首先,我们必须为哈希集创建一个对象。
- 然后我们必须将所有元素添加到哈希集中。
- 最后,为树集创建一个对象,并将哈希集对象发送给树集。
下面是上述方法的实现:
程序:
```java 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 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 hashSetToTreeSet = new TreeSet<>(setobj);
// Print the TreeSet System.out.println("TreeSet: " + hashSetToTreeSet); } } ```
Output:
```java HashSet: [Geeks, For, Welcome, To] TreeSet: [For, Geeks, To, Welcome]
```
- By constructing a tree set containing the same elements present in the hash set by using addAll method.
- 首先,我们必须为哈希集创建一个对象。
- 然后我们必须将所有元素添加到哈希集中。
- 现在为树集创建一个对象。
- 使用 addAll 方法向其中添加哈希集的所有元素。
下面是上述方法的实现:
程序:
```java 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 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 hashSetToTreeSet = new TreeSet<>(); hashSetToTreeSet.addAll(setobj);
// Print the TreeSet System.out.println("TreeSet: " + hashSetToTreeSet); } } ```
Output:
```java HashSet: [Geeks, For, Welcome, To] TreeSet: [For, Geeks, To, Welcome]
```
- By using a for each loop.( This method is commonly used for conversion between two incompatible types.)
- 首先,我们必须为哈希集创建一个对象。
- 然后我们必须将所有元素添加到哈希集中。
- 现在为树集创建一个对象。
- 最后,通过对每个循环使用,将哈希集的所有元素添加到树集中。
下面是上述方法的实现:
程序:
```java 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 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 hashSetToTreeSet = new TreeSet<>(); for (String i : setobj) hashSetToTreeSet .add(i);
// Print the TreeSet System.out.println("TreeSet: " + hashSetToTreeSet); } } ```
Output:
```java HashSet: [Geeks, For, Welcome, To] TreeSet: [For, Geeks, To, Welcome]
```
版权属于:月萌API www.moonapi.com,转载请注明出处