在Java中将HashSet转换为TreeSet

在Java中将HashSet转换为TreeSet

Hashset : Java中的Hashset通常用于搜索、插入和删除等操作。平均情况下,它们使用常数时间。HashSet比TreeSet更快。HashSet使用哈希表实现。

TreeSet : 在Java中,TreeSet需要O(log n)的时间进行搜索、插入和删除,这比HashSet更高。但是,TreeSet保持排序数据。此外,它支持一些操作,如higher()(返回最小的更高元素)、floor()、ceiling()等。在TreeSet中,这些操作也是O(log n),而HashSet不支持它们。TreeSet使用平衡二叉搜索树(红黑树)实现。在Java中,TreeSet由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:

  • 通过调用带参数的构造函数并将Hash set对象作为参数发送给它。
    1. 首先,我们必须创建一个哈希集对象。
    2. 然后将所有元素添加到哈希集中。
    3. 最后,创建一个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方法构造一个包含与哈希集中相同元素的树集。
    1. 首先,我们必须为哈希集创建一个对象。
    2. 然后,我们必须将所有元素添加到哈希集中。
    3. 现在为treeset创建一个对象。
    4. 使用addAll方法将哈希集的所有元素添加到其中。

下面是上述方法的实现:

程序:

import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
   
public class GFG {
   
    public static void main(String[] args)
    {
    
        // 获取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);
  
        // 将HashSet转换为TreeSet
        Set<String> hashSetToTreeSet
            = new TreeSet<>();
        hashSetToTreeSet.addAll(setobj);
  
        // 打印TreeSet
        System.out.println("TreeSet: "
                           + hashSetToTreeSet);
    }
}

输出:

HashSet: [Geeks, For, Welcome, To]
TreeSet: [For, Geeks, To, Welcome]
  • 通过使用foreach循环。 (此方法通常用于在两种不兼容的类型之间进行转换。)

  • 首先,我们必须为哈希集创建一个对象。

  • 然后,我们必须将所有元素添加到哈希集中。
  • 现在为treeset创建一个对象。
  • 最后,通过使用foreach循环将哈希集的所有元素添加到树集中。

下面是上述方法的实现:

程序:

import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
   
public class GFG {
   
    public static void main(String[] args)
    {
    
        // 获取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);
  
        // 将HashSet转换为TreeSet
        Set<String> hashSetToTreeSet
            = new TreeSet<>();
        for (String i : setobj)
            hashSetToTreeSet
                .add(i);
  
        // 打印TreeSet
        System.out.println("TreeSet: "
                           + hashSetToTreeSet);
    }
}
HashSet: [Geeks, For, Welcome, To]
TreeSet: [For, Geeks, To, Welcome]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程