Interfaz SortedSet en Java con ejemplos

La interfaz SortedSet presente en el paquete java.util amplía la interfaz Set presente en el marco de la colección . Es una interfaz que implementa el conjunto matemático. Esta interfaz contiene los métodos heredados de la interfaz Set y agrega una función que almacena todos los elementos en esta interfaz para almacenarlos de manera ordenada.

Set-TreeSet-SortedSet-In-Java-Collection

En la imagen anterior, el conjunto navegable amplía la interfaz del conjunto ordenado. Dado que un conjunto no conserva el orden de inserción, la interfaz de conjunto navegable proporciona la implementación para navegar por el Conjunto. La clase que implementa el conjunto navegable es un TreeSet que es una implementación de un árbol autoequilibrado. Por lo tanto, esta interfaz nos proporciona una forma de navegar a través de este árbol.

Declaración: la interfaz SortedSet se declara como:

interfaz pública SortedSet extiende Set

Ejemplo de un conjunto ordenado:

// Java program to demonstrate the
// Sorted Set
import java.util.*;
  
class SortedSetExample{
  
    public static void main(String[] args)
    {
        SortedSet<String> ts
            = new TreeSet<String>();
  
        // Adding elements into the TreeSet
        // using add()
        ts.add("India");
        ts.add("Australia");
        ts.add("South Africa");
  
        // Adding the duplicate
        // element
        ts.add("India");
  
        // Displaying the TreeSet
        System.out.println(ts);
  
        // Removing items from TreeSet
        // using remove()
        ts.remove("Australia");
        System.out.println("Set after removing "
                           + "Australia:" + ts);
  
        // Iterating over Tree set items
        System.out.println("Iterating over set:");
        Iterator<String> i = ts.iterator();
        while (i.hasNext())
            System.out.println(i.next());
    }
}
Producción:

[Australia, India, South Africa]
Set after removing Australia:[India, South Africa]
Iterating over set:
India
South Africa

Nota: Todos los elementos de un SortedSet deben implementar la interfaz Comparable (o ser aceptados por el Comparador especificado) y todos esos elementos deben ser comparables entre sí. Mutuamente comparables simplemente significa que dos objetos se aceptan entre sí como argumento de su método compareTo.

Creación de objetos de conjuntos ordenados

Dado que SortedSet es una interfaz , no se pueden crear objetos del tipo SortedSet. Siempre necesitamos una clase que amplíe esta lista para crear un objeto. Y también, después de la introducción de Generics en Java 1.5, es posible restringir el tipo de objeto que se puede almacenar en SortedSet. Este conjunto de tipo seguro se puede definir como:

// Obj es el tipo de objeto a almacenar en SortedSet
SortedSet<Obj> set = new TreeSet<Obj>();

Realización de varias operaciones en SortedSet

Dado que SortedSet es una interfaz, solo se puede usar con una clase que implemente esta interfaz. TreeSet es la clase que implementa la interfaz SortedSet. Ahora, veamos cómo realizar algunas operaciones de uso frecuente en el TreeSet.

1. Agregar elementos: para agregar un elemento al SortedSet, podemos usar el método add(). Sin embargo, el orden de inserción no se conserva en el TreeSet. Internamente, para cada elemento, los valores se comparan y clasifican en orden ascendente. Debemos tener en cuenta que los elementos duplicados no están permitidos y todos los elementos duplicados se ignoran. Y también, los valores nulos no son aceptados por SortedSet.

// Java code to demonstrate
// the working of SortedSet
import java.util.*;
  
class GFG {
  
    public static void main(String[] args)
    {
        SortedSet<String> ts
            = new TreeSet<String>();
  
        // Elements are added using add() method
        ts.add("A");
        ts.add("B");
        ts.add("C");
        ts.add("A");
  
        System.out.println(ts);
    }
}
Producción:

[A, B, C]

2. Acceder a los Elementos: Después de agregar los elementos, si deseamos acceder a los elementos, podemos usar métodos incorporados como contains() , first() , last() , etc.

// Java code to demonstrate
// the working of SortedSet
  
import java.util.*;
class GFG {
  
    public static void main(String[] args)
    {
        SortedSet<String> ts
            = new TreeSet<String>();
  
        // Elements are added using add() method
        ts.add("A");
        ts.add("B");
        ts.add("C");
        ts.add("A");
  
        System.out.println("Sorted Set is " + ts);
  
        String check = "D";
  
        // Check if the above string exists in
        // the SortedSet or not
        System.out.println("Contains " + check
                           + " " + ts.contains(check));
  
        // Print the first element in
        // the SortedSet
        System.out.println("First Value " + ts.first());
  
        // Print the last element in
        // the SortedSet
        System.out.println("Last Value " + ts.last());
    }
}
Producción:

Sorted Set is [A, B, C]
Contains D false
First Value A
Last Value C

3. Eliminar los valores: los valores se pueden eliminar del SortedSet mediante el método remove() .

// Java code to demonstrate
// the working of SortedSet
  
import java.util.*;
class GFG{
  
    public static void main(String[] args)
    {
        SortedSet<String> ts
            = new TreeSet<String>();
  
        // Elements are added using add() method
        ts.add("A");
        ts.add("B");
        ts.add("C");
        ts.add("B");
        ts.add("D");
        ts.add("E");
  
        System.out.println("Initial TreeSet " + ts);
  
        // Removing the element b
        ts.remove("B");
  
        System.out.println("After removing element " + ts);
    }
}
Producción:

Initial TreeSet [A, B, C, D, E]
After removing element [A, C, D, E]

4. Iterando a través de SortedSet: Hay varias formas de iterar a través de SortedSet. El más famoso es usar el bucle for mejorado.

// Java code to demonstrate
// the working of SortedSet
   
import java.util.*;
class GFG
 { 
    public static void main(String[] args)
    {
        SortedSet<String> ts
            = new TreeSet<String>();
   
        // Elements are added using add() method
        ts.add("C");
        ts.add("D");
        ts.add("E");
        ts.add("A");
        ts.add("B");
        ts.add("Z");
   
        // Iterating though the SortedSet
        for (String value : ts)
            System.out.print(value
                             + ", ");
        System.out.println();
    }
}
Producción:

A, B, C, D, E, Z,

La clase que implementa la interfaz SortedSet es TreeSet.

TreeSet: la clase TreeSet que se implementa en el marco de las colecciones es una implementación de la interfaz SortedSet y SortedSet amplía la interfaz Set . Se comporta como un conjunto simple con la excepción de que almacena elementos en un formato ordenado. TreeSet utiliza una estructura de datos de árbol para el almacenamiento. Los objetos se almacenan en orden ascendente ordenado. Pero podemos iterar en orden descendente usando el método TreeSet.descendingIterator() . Veamos cómo crear un objeto sortedset usando esta clase.

// Java program to demonstrate the
// creation of SortedSet object using
// the TreeSet class
  
import java.util.*;
  
class GFG {
  
    public static void main(String[] args)
    {
        SortedSet<String> ts
            = new TreeSet<String>();
  
        // Adding elements into the TreeSet
        // using add()
        ts.add("India");
        ts.add("Australia");
        ts.add("South Africa");
  
        // Adding the duplicate
        // element
        ts.add("India");
  
        // Displaying the TreeSet
        System.out.println(ts);
  
        // Removing items from TreeSet
        // using remove()
        ts.remove("Australia");
        System.out.println("Set after removing "
                           + "Australia:" + ts);
  
        // Iterating over Tree set items
        System.out.println("Iterating over set:");
        Iterator<String> i = ts.iterator();
        while (i.hasNext())
            System.out.println(i.next());
    }
}
Producción:

[Australia, India, South Africa]
Set after removing Australia:[India, South Africa]
Iterating over set:
India
South Africa

Métodos de la interfaz SortedSet

Los siguientes son los métodos presentes en la interfaz SortedSet. Aquí, el “*” representa que los métodos son parte de la interfaz Set .

Método Descripción
*añadir(elemento) Este método se utiliza para agregar un elemento específico al conjunto. La función agrega el elemento solo si el elemento especificado aún no está presente en el conjunto; de lo contrario, la función devuelve False si el elemento ya está presente en el Conjunto.
*addAll(colección) Este método se utiliza para agregar todos los elementos de la colección mencionada al conjunto existente. Los elementos se añaden aleatoriamente sin seguir ningún orden específico.
*clear() Este método se utiliza para eliminar todos los elementos del conjunto pero no eliminar el conjunto. La referencia para el conjunto todavía existe.
comparador() Este método devuelve el comparador utilizado para ordenar los elementos de este conjunto, o nulo si este conjunto utiliza la ordenación natural de sus elementos.
*contiene(elemento) Este método se utiliza para comprobar si un elemento específico está presente en el Conjunto o no.
*containsAll(colección) Este método se utiliza para verificar si el conjunto contiene todos los elementos presentes en la colección dada o no. Este método devuelve verdadero si el conjunto contiene todos los elementos y devuelve falso si falta alguno de los elementos.
primero() Este método devuelve el primer elemento (más bajo) presente en este conjunto.
código hash() Este método se usa para obtener el valor hashCode para esta instancia del Conjunto. Devuelve un valor entero que es el valor hashCode para esta instancia del Conjunto.
headSet(elemento) Este método devuelve los elementos que son menores que el elemento que está presente en el conjunto ordenado.
*esta vacio() Este método se utiliza para comprobar si un SortedSet está vacío o no.
ultimo() Este método devuelve el último (más alto) elemento presente en el conjunto.
*eliminar(elemento) Este método se utiliza para eliminar el elemento dado del conjunto. Este método devuelve True si el elemento especificado está presente en el Conjunto; de lo contrario, devuelve False.
*removeAll(colección) Este método se utiliza para eliminar todos los elementos de la colección que están presentes en el conjunto. Este método devuelve verdadero si este conjunto cambió como resultado de la llamada.
*retainAll(colección) Este método se utiliza para retener todos los elementos del conjunto que se mencionan en la colección dada. Este método devuelve verdadero si este conjunto cambió como resultado de la llamada.
*Talla() Este método se utiliza para obtener el tamaño del conjunto. Esto devuelve un valor entero que significa el número de elementos.
subconjunto(elemento1, elemento2) Este método devuelve un subconjunto ordenado del conjunto que contiene los elementos entre elemento1 y elemento2.
tailSet(elemento) Este método devuelve los elementos que son mayores o iguales que el elemento que está presente en el conjunto ordenado.
*aArray() Este método se utiliza para formar una array de los mismos elementos que el Conjunto.

Publicación traducida automáticamente

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