Java HashSet转换为TreeSet

Java HashSet转换为TreeSet

哈希集: Java中的哈希集一般用于搜索、插入和删除等操作。平均来说,这些操作需要持续的时间。HashSet比TreeSet快。HashSet是用一个哈希表实现的。

TreeSet: Java中的TreeSet用于搜索、插入和删除需要O(log n),比HashSet高。但是TreeSet保持排序的数据。此外,它还支持像higher()(返回最少的高元素)、floor()、 ceiling()等操作。这些操作在TreeSet中也是O(log n),在HashSet中不支持。TreeSet是用自平衡二进制搜索树(Red-Black Tree)实现的。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

通过调用参数化构造函数并将哈希集的对象作为参数发送给它。

  1. 首先,我们要为哈希集创建一个对象。
  2. 然后我们要把所有的元素添加到哈希集合中。
  3. 最后,为树形集合创建一个对象,并将哈希集合对象发送给它。

下面是上述方法的实现。

程序:

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. 现在为树集创建一个对象。
  4. 使用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循环。 (这种方法通常用于两种不兼容类型之间的转换。)

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

  • 然后,我们必须将所有的元素添加到哈希集中。
  • 现在为树集创建一个对象。
  • 最后,通过使用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]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程