Diferencia entre TreeSet y SortedSet en Java

TreeSet es una de las implementaciones de la subinterfaz navegable. Su estructura de datos subyacente es un árbol rojo-negro . Los elementos se almacenan en orden ascendente y hay más métodos disponibles en TreeSet en comparación con SortedSet. También podemos cambiar el parámetro de clasificación usando un Comparator . Por ejemplo, Comparator se proporciona en el momento de la creación del conjunto, según el constructor que se utilice.

  • También implementa la interfaz NavigableSet.
  • NavigableSet amplía las interfaces SortedSet y Set .

Ejemplo

Java

// Java Program to Illustrate TreeSet
 
// Importing required classes
import java.util.*;
 
// Main class
class GFG {
 
    // Main driver method
    public static void main(String args[]) {
 
        // Creating an empty TreeSet of string type elements
        TreeSet<String> al = new TreeSet<String>();
 
        // Adding elements
        // using add() method
        al.add("Welcome");
        al.add("to");
        al.add("Geeks for Geeks");
 
        // Traversing elements via help of iterators
        Iterator<String> itr = al.iterator();
 
        // Holds true until there is element remaining in object
        while (itr.hasNext()) {
 
            // Moving onto next element with help of next() method
            System.out.println(itr.next());
        }
    }
}
Producción

Geeks for Geeks
Welcome
to

Conjunto ordenado

SortedSet es una subinterfaz , que está disponible en java.util.package , que amplía la interfaz Set. Esta interfaz contiene los métodos heredados de la interfaz Set. Por ejemplo, headSet, tailSet, subSet, Comparator, first, last y muchos más.

Ejemplo

Java

// Java program to Illustrate SortedSet
 
// Importing utility classes
import java.util.*;
 
// Main class
class GFG {
 
    // Main driver method
    public static void main(String[] args)
    {
 
        // Creating an instance of SortedSet
        // String type
        SortedSet<String> ts = new TreeSet<String>();
 
        // Adding elements into the TreeSet
        // using add()
        ts.add("Sravan");
        ts.add("Ojaswi");
        ts.add("Bobby");
        ts.add("Rohith");
        ts.add("Gnanesh");
        ts.add("Devi2");
 
        // Adding the duplicate element
        // again simply using add() method
        ts.add("Sravan");
 
        // Print and display TreeSet
        System.out.println(ts);
 
        // Removing items from TreeSet
        // using remove() method
        ts.remove("Ojaswi");
 
        // Display message
        System.out.println("Iterating over set:");
 
        // Iterating over TreeSet items
        Iterator<String> i = ts.iterator();
 
        // Condition holds true till there is single element
        // remaining in the object
        while (i.hasNext())
 
            // Printing elements
            System.out.println(i.next());
    }
}
Producción

[Bobby, Devi2, Gnanesh, Ojaswi, Rohith, Sravan]
Iterating over set:
Bobby
Devi2
Gnanesh
Rohith
Sravan

Ahora, después de tener una comprensión adecuada y el funcionamiento interno de TreeSet y SortedSet, ahora veamos las diferencias entre TreeSet y SortedSet, que se muestran en la tabla que se proporciona a continuación:

Base

ÁrbolConjunto

conjunto ordenado

Clasificación Clase de la subinterfaz NavigableSet. Subinterfaz
Orden de insercion TreeSet mantiene un objeto ordenado. SortedSet mantiene un objeto ordenado.
Inicialización

Sintaxis:

TreeSet<Tipo de datos> treeset = new TreeSet<>();

Sintaxis:

No se puede instanciar porque es una subinterfaz.

Métodos  Contiene más métodos que SortedSet. Contiene menos métodos que TreeSet.
Ejemplo contiene todos los métodos de SortSet. Además, métodos como techo(), piso(), superior(), inferior(), etc. contiene métodos como agregar(), agregarTodos(), iterador(), retenerTodos() y etc.

Conclusión: básicamente, en palabras simples, asumamos de esta manera, TreeSet es una clase de NavigableSet que contiene todos los métodos para un mejor recorrido y búsqueda de valores. SortedSet es un subconjunto de NavigableSet en términos de métodos en comparación con TreeSet (NavigableSet)

Publicación traducida automáticamente

Artículo escrito por sravankumar8128 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 *