Convertir HashSet a TreeSet en Java

Hashset : Hashset en Java generalmente se usa para operaciones como buscar, insertar y eliminar. En promedio, se necesita un tiempo constante para estas operaciones. HashSet es más rápido que TreeSet. HashSet se implementa mediante una tabla hash.

TreeSet : TreeSet en Java toma O (log n) para buscar, insertar y eliminar, que es más alto que HashSet. Pero TreeSet mantiene los datos ordenados. Además, admite operaciones como más alto() (devuelve el elemento menos alto), piso(), techo(), etc. Estas operaciones también son O (log n) en TreeSet y no se admiten en HashSet. TreeSet se implementa mediante un árbol de búsqueda binario autoequilibrado (árbol rojo-negro). TreeSet está respaldado por TreeMap en Java.

En general, si desea un conjunto ordenado , es mejor agregar elementos a HashSet y luego convertirlo en TreeSet en lugar de crear un TreeSet y agregarle elementos.

Dado un HashSet, la tarea es convertirlo en TreeSet en Java.

Ejemplos:

HashSet: [Geeks, For, Welcome, To]
TreeSet: [For, Geeks, To, Welcome]

HashSet: [1, 2, 3, 4, 5]
TreeSet: [1, 2, 3, 4, 5]

Podemos convertir HashSet a TreeSet de las siguientes maneras:

  • Invocando el constructor parametrizado y enviando el objeto de Hash establecido como parámetro.
    1. Primero, tenemos que crear un objeto para el conjunto hash.
    2. Luego tenemos que agregar todos los elementos al conjunto hash.
    3. Finalmente, cree un objeto para el conjunto de árboles y envíele el objeto de conjunto hash.

    A continuación se muestra la implementación del enfoque anterior:

    Programa:

    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);
        }
    }
    Producción:

    HashSet: [Geeks, For, Welcome, To]
    TreeSet: [For, Geeks, To, Welcome]
    
  • Mediante la construcción de un conjunto de árboles que contenga los mismos elementos presentes en el conjunto hash utilizando el método addAll.
    1. Primero, tenemos que crear un objeto para el conjunto hash.
    2. Luego tenemos que agregar todos los elementos al conjunto hash.
    3. Ahora cree un objeto para el conjunto de árboles.
    4. Usando el método addAll agregue todos los elementos del conjunto hash.

    A continuación se muestra la implementación del enfoque anterior:

    Programa:

    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);
        }
    }
    Producción:

    HashSet: [Geeks, For, Welcome, To]
    TreeSet: [For, Geeks, To, Welcome]
    
  • Mediante el uso de un para cada bucle. (Este método se usa comúnmente para la conversión entre dos tipos incompatibles).
  • Primero, tenemos que crear un objeto para el conjunto hash.
  • Luego tenemos que agregar todos los elementos al conjunto hash.
  • Ahora cree un objeto para el conjunto de árboles.
  • Finalmente, al usar para cada bucle, se agregan todos los elementos del conjunto hash al conjunto del árbol.
  • A continuación se muestra la implementación del enfoque anterior:

    Programa:

    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);
        }
    }
    
    Producción:

    HashSet: [Geeks, For, Welcome, To]
    TreeSet: [For, Geeks, To, Welcome]
    

    Publicación traducida automáticamente

    Artículo escrito por suman_ptnl y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *