ConcurrentSkipListSet en Java con ejemplos

La clase ConcurrentSkipListSet en Java es parte de Java Collection Framework e implementa la interfaz Collection y la clase AbstractSet . Proporciona una versión escalable y concurrente de NavigableSet en Java . La implementación de ConcurrentSkipListSet se basa en ConcurrentSkipListMap . Los elementos de ConcurrentSkipListSet se clasifican de forma predeterminada en su orden natural o mediante un comparador proporcionado en el momento de la creación del conjunto, según el constructor que se utilice.

Dado que implementa SortedSet<E> y NavigableSet<E> , es similar a TreeSet con la característica adicional de ser concurrente. Dado que es seguro para subprocesos, puede ser utilizado por varios subprocesos al mismo tiempo, mientras que TreeSet no es seguro para subprocesos.

Jerarquía de clases: 

ConcurrentSkipListSet-in-Java

Declaración: 

public class ConcurrentSkipListSet<E>
    extends AbstractSet<E>
        implements NavigableSet<E>, Cloneable, Serializable

Where E is the type of elements maintained by this collection

Algunos puntos importantes en ConcurrentSkipListSet:

  • Implementa las interfaces Serializable , Cloneable , Iterable<E> , Collection<E> , NavigableSet<E> , Set<E> , SortedSet<E> .
  • No permite elementos nulos, porque los argumentos nulos y los valores devueltos no se pueden distinguir de forma fiable de la ausencia de elementos.
  • Su implementación proporciona un costo promedio de tiempo de registro (n) para operaciones de contenido, adición y eliminación y sus variantes.
  • Es seguro para subprocesos.
  • Debe preferirse a la implementación de la interfaz Set cuando se requiere la modificación simultánea del conjunto.

Constructores:

1. ConcurrentSkipListSet() : este constructor se usa para construir un conjunto vacío.

ConcurrentSkipListSet<E> set = new ConcurrentSkipListSet<E>();

2. ConcurrentSkipListSet(Collection<E> c) : este constructor se utiliza para construir un conjunto con los elementos de la colección pasados ​​como parámetro.

ConcurrentSkipListSet<E> set = new ConcurrentSkipListSet<E>(Colección<E> c);

3. ConcurrentSkipListSet(Comparator<E> comparador) : este constructor se usa para construir un nuevo conjunto vacío que ordena sus elementos de acuerdo con el comparador especificado.

ConcurrentSkipListSet<E> set = new ConcurrentSkipListSet<E>(Comparator<E> comparador);

4. ConcurrentSkipListSet(SortedSet<E> s) : este constructor se usa para construir un nuevo conjunto que contiene los mismos elementos y usa el mismo orden que el conjunto ordenado especificado.

ConcurrentSkipListSet<E> set = new ConcurrentSkipListSet<E>(SortedSet<E> s);

Ejemplo 1:

Java

// Java program to demonstrate ConcurrentSkipListSet
  
import java.util.*;
import java.util.concurrent.ConcurrentSkipListSet;
  
class ConcurrentSkipListSetLastExample1 {
    public static void main(String[] args)
    {
  
        // Initializing the set using
        // ConcurrentSkipListSet()
        ConcurrentSkipListSet<Integer> set
            = new ConcurrentSkipListSet<Integer>();
  
        // Adding elements to this set
        set.add(78);
        set.add(64);
        set.add(12);
        set.add(45);
        set.add(8);
  
        // Printing the ConcurrentSkipListSet
        System.out.println("ConcurrentSkipListSet: " + set);
  
        // Initializing the set using
        // ConcurrentSkipListSet(Collection)
        ConcurrentSkipListSet<Integer> set1
            = new ConcurrentSkipListSet<Integer>(set);
  
        // Printing the ConcurrentSkipListSet1
        System.out.println("ConcurrentSkipListSet1: "
                           + set1);
  
        // Initializing the set using
        // ConcurrentSkipListSet()
        ConcurrentSkipListSet<String> set2
            = new ConcurrentSkipListSet<>();
  
        // Adding elements to this set
        set2.add("Apple");
        set2.add("Lemon");
        set2.add("Banana");
        set2.add("Apple");
  
        // creating an iterator
        Iterator<String> itr = set2.iterator();
  
        System.out.print("Fruits Set: ");
        while (itr.hasNext()) {
            System.out.print(itr.next() + " ");
        }
    }
}

Producción:

ConcurrentSkipListSet: [8, 12, 45, 64, 78]
ConcurrentSkipListSet1: [8, 12, 45, 64, 78]
Fruits Set: Apple Banana Lemon 

 
Ejemplo 2:  

Java

// Java program to demonstrate ConcurrentSkipListSet
  
import java.util.concurrent.ConcurrentSkipListSet;
  
class ConcurrentSkipListSetLastExample1 {
    
    public static void main(String[] args)
    {
  
        // Initializing the set using ConcurrentSkipListSet()
        ConcurrentSkipListSet<Integer>
            set = new ConcurrentSkipListSet<Integer>();
  
        // Adding elements to this set
        // using add() method
        set.add(78);
        set.add(64);
        set.add(12);
        set.add(45);
        set.add(8);
  
        // Printing the ConcurrentSkipListSet
        System.out.println("ConcurrentSkipListSet: "
                           + set);
  
        // Printing the highest element of the set
        // using last() method
        System.out.println("The highest element of the set: "
                           + set.last());
  
        // Retrieving and removing first element of the set
        System.out.println("The first element of the set: "
                           + set.pollFirst());
  
        // Checks if 9 is present in the set
        // using contains() method
        if (set.contains(9))
            System.out.println("9 is present in the set.");
        else
            System.out.println("9 is not present in the set.");
  
        // Printing the size of the set
        // using size() method
        System.out.println("Number of elements in the set = "
                           + set.size());
    }
}

Producción:

ConcurrentSkipListSet: [8, 12, 45, 64, 78]
The highest element of the set: 78
The first element of the set: 8
9 is not present in the set.
Number of elements in the set = 4

Métodos de ConcurrentSkipListSet

MÉTODO

DESCRIPCIÓN

añadir (E mi) Agrega el elemento especificado a este conjunto si aún no está presente.
techo (E e) Devuelve el menor elemento de este conjunto mayor o igual que el elemento dado, o nulo si no existe tal elemento.
 clear() Elimina todos los elementos de este conjunto.
 clon() Devuelve una copia superficial de esta instancia de ConcurrentSkipListSet.
comparador() 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(Objeto o) Devuelve verdadero si este conjunto contiene el elemento especificado.
iterador descendente() Devuelve un iterador sobre los elementos de este conjunto en orden descendente.
descendingSet() Devuelve una vista en orden inverso de los elementos contenidos en este conjunto.
es igual a (Objeto o) Compara el objeto especificado con este conjunto para la igualdad.
primero() Devuelve el primer elemento (más bajo) actualmente en este conjunto.
piso (E mi) Devuelve el mayor elemento de este conjunto menor o igual que el elemento dado, o nulo si no existe tal elemento.
headSet(E a Elemento) Devuelve una vista de la parte de este conjunto cuyos elementos son estrictamente menores que toElement.
headSet(E toElement, booleano inclusive) Devuelve una vista de la parte de este conjunto cuyos elementos son menores que (o iguales, si inclusive es verdadero) a Elemento.
más alto (E mi) Devuelve el elemento mínimo de este conjunto estrictamente mayor que el elemento dado, o nulo si no existe tal elemento.
esta vacio() Devuelve un iterador sobre los elementos de este conjunto en orden ascendente.
ultimo() Devuelve el último elemento (más alto) actualmente en este conjunto.
inferior (E mi) Devuelve el mayor elemento de este conjunto estrictamente menor que el elemento dado, o nulo si no existe tal elemento.
sondearprimero() Recupera y elimina el primer elemento (el más bajo), o devuelve un valor nulo si este conjunto está vacío.
última encuesta() Recupera y elimina el último elemento (más alto), o devuelve un valor nulo si este conjunto está vacío.
 quitar(Objeto o) Elimina el elemento especificado de este conjunto si está presente.
removeAll(Colección<?> c) Elimina de este conjunto todos sus elementos que están contenidos en la colección especificada.
Talla() Devuelve el número de elementos de este conjunto.
divisor() Devuelve un Spliterator sobre los elementos de este conjunto.

 subConjunto(E deElemento, booleano 

fromInclusive, E toElement, boolean toInclusive)

Devuelve una vista de la parte de este conjunto cuyos elementos van desde fromElement hasta toElement.
subConjunto(E deElemento, E aElemento) Devuelve una vista de la parte de este conjunto cuyos elementos van desde fromElement, inclusive, hasta toElement, exclusivo.
tailSet(E fromElement) Devuelve una vista de la parte de este conjunto cuyos elementos son mayores o iguales que fromElement.
tailSet(E fromElement, booleano inclusive) Devuelve una vista de la parte de este conjunto cuyos elementos son mayores que (o iguales, si inclusive es verdadero) fromElement.

Métodos heredados de la clase java.util.AbstractSet

MÉTODO

DESCRIPCIÓN

código hash() Devuelve el valor del código hash para este conjunto.

Métodos heredados de la clase java.util.AbstractCollection

MÉTODO

DESCRIPCIÓN

addAll(Colección<? extiende E> c) Agrega todos los elementos de la colección especificada a esta colección (operación opcional).
contieneTodo(Colección<?> c) Devuelve verdadero si esta colección contiene todos los elementos de la colección especificada.
retenerTodo(Colección<?> c) Retiene solo los elementos de esta colección que están contenidos en la colección especificada (operación opcional).
aArray() Devuelve una array que contiene todos los elementos de esta colección.
aArray(T[] a) Devuelve una array que contiene todos los elementos de esta colección; el tipo de tiempo de ejecución de la array devuelta es el de la array especificada.
Enstringr() Devuelve una representación de string de esta colección.

Métodos heredados de la interfaz java.util.Set

MÉTODO

DESCRIPCIÓN

addAll(Colección<? extiende E> c) Agrega todos los elementos de la colección especificada a este conjunto si aún no están presentes (operación opcional).
contieneTodo(Colección<?> c) Devuelve verdadero si este conjunto contiene todos los elementos de la colección especificada.
código hash() Devuelve el valor del código hash para este conjunto.
retenerTodo(Colección<?> c) Conserva solo los elementos de este conjunto que están contenidos en la colección especificada (operación opcional).
aArray() Devuelve una array que contiene todos los elementos de este conjunto.
aArray(T[] a) Devuelve una array que contiene todos los elementos de este conjunto; el tipo de tiempo de ejecución de la array devuelta es el de la array especificada.

Métodos heredados de la interfaz java.util.Collection

MÉTODO

DESCRIPCIÓN

flujoParalelo() Devuelve un Stream posiblemente paralelo con esta colección como fuente.
removeIf(Predicado<? super E> filtro) Elimina todos los elementos de esta colección que satisfacen el predicado dado.
corriente() Devuelve un Stream secuencial con esta colección como fuente.

Métodos heredados de la interfaz java.lang.Iterable

MÉTODO

DESCRIPCIÓN

forEach(Consumidor<? super T> acción) Realiza la acción dada para cada elemento del iterable hasta que se hayan procesado todos los elementos o la acción genere una excepción.

Publicación traducida automáticamente

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