C# | Clase HashSet

Un HashSet<T> es una colección desordenada de elementos únicos . Viene bajo el espacio de nombres System.Collections.Generic . Se utiliza en una situación en la que queremos evitar que se inserten duplicados en la colección. En cuanto al rendimiento, es mejor en comparación con la lista.

Características de la clase HashSet:

  • La clase HashSet< T > proporciona operaciones de conjunto de alto rendimiento. Un conjunto es una colección que no contiene elementos duplicados y cuyos elementos no están en un orden particular.
  • La capacidad de un objeto HashSet< T > es la cantidad de elementos que el objeto puede contener.
  • La capacidad de un objeto HashSet< T > aumenta automáticamente a medida que se agregan elementos al objeto.
  • Una colección HashSet< T > no está ordenada y no puede contener elementos duplicados.
  • HashSet< T > proporciona muchas operaciones matemáticas de conjuntos, como la suma de conjuntos (uniones) y la resta de conjuntos.

Constructores

Constructor Descripción
HashSet() Inicializa una nueva instancia de la clase HashSet que está vacía y usa el comparador de igualdad predeterminado para el tipo de conjunto.
HashSet(IEnumerable) Inicializa una nueva instancia de la clase HashSet que usa el comparador de igualdad predeterminado para el tipo de conjunto, contiene elementos copiados de la colección especificada y tiene capacidad suficiente para acomodar la cantidad de elementos copiados.
HashSet(IEnumerable, IEqualityComparer) Inicializa una nueva instancia de la clase HashSet que usa el comparador de igualdad especificado para el tipo de conjunto, contiene elementos copiados de la colección especificada y tiene capacidad suficiente para acomodar la cantidad de elementos copiados.
HashSet (comparador de calidad IE) Inicializa una nueva instancia de la clase HashSet que está vacía y usa el comparador de igualdad especificado para el tipo de conjunto.
HashSet(Int32) Inicializa una nueva instancia de la clase HashSet que está vacía, pero tiene espacio reservado para elementos de capacidad y usa el comparador de igualdad predeterminado para el tipo de conjunto.
HashSet (Int32, Comparador de calidad de IE) Inicializa una nueva instancia de la clase HashSet que usa el comparador de igualdad especificado para el tipo de conjunto y tiene capacidad suficiente para acomodar elementos de capacidad.
HashSet(SerializationInfo, StreamingContext) Inicializa una nueva instancia de la clase HashSet con datos serializados.

Ejemplo:

// C# code to create a HashSet
using System;
using System.Collections.Generic;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a HashSet of odd numbers
        HashSet<int> odd = new HashSet<int>();
  
        // Inserting elements in HashSet
        for (int i = 0; i < 5; i++) {
            odd.Add(2 * i + 1);
        }
  
        // Displaying the elements in the HashSet
        foreach(int i in odd)
        {
            Console.WriteLine(i);
        }
    }
}

Producción:

1
3
5
7
9

Propiedades

Propiedad Descripción
Comparador Obtiene el objeto IEqualityComparer que se usa para determinar la igualdad de los valores del conjunto.
Contar Obtiene el número de elementos contenidos en un conjunto.

Ejemplo:

// C# code to get the number of
// elements that are contained in HashSet
using System;
using System.Collections.Generic;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a HashSet of integers
        HashSet<int> mySet = new HashSet<int>();
  
        // Inserting elements in HashSet
        for (int i = 0; i < 5; i++) {
            mySet.Add(i * 2);
        }
  
        // To get the number of
        // elements that are contained in HashSet
        Console.WriteLine(mySet.Count);
    }
}

Producción:

5

Métodos

Método Descripción
Añadir(T) Agrega el elemento especificado a un conjunto.
Claro() Elimina todos los elementos de un objeto HashSet.
Contiene (T) Determina si un objeto HashSet contiene el elemento especificado.
Copiar a() Copia los elementos de una colección HashSet en una array.
CrearConjuntoComparador() Devuelve un objeto IEqualityComparer que se puede usar para probar la igualdad de un objeto HashSet.
Es igual a (Objeto) Determina si el objeto especificado es igual al objeto actual.
Excepto con (IEnumerable) Elimina todos los elementos de la colección especificada del objeto HashSet actual.
ObtenerEnumerador() Devuelve un enumerador que itera a través de un objeto HashSet.
Obtener código hash() Sirve como la función hash predeterminada.
GetObjectData(SerializationInfo, StreamingContext) Implementa la interfaz ISerializable y devuelve los datos necesarios para serializar un objeto HashSet.
ObtenerTipo() Obtiene el Tipo de la instancia actual.
IntersecarCon(IEnumerable) Modifica el objeto HashSet actual para que contenga solo los elementos que están presentes en ese objeto y en la colección especificada.
EsProperSubsetOf(IEnumerable) Determina si un objeto HashSet es un subconjunto adecuado de la colección especificada.
EsSuperconjuntoPropioDe(IEnumerable) Determina si un objeto HashSet es un superconjunto adecuado de la colección especificada.
EsSubconjuntoDe(IEnumerable) Determina si un objeto HashSet es un subconjunto de la colección especificada.
EsSuperconjuntoDe(IEnumerable) Determina si un objeto HashSet es un superconjunto de la colección especificada.
MemberwiseClone() Crea una copia superficial del objeto actual.
OnDeserialization(Objeto) Implementa la interfaz ISerializable y genera el evento de deserialización cuando se completa la deserialización.
Superposiciones (IEnumerable) Determina si el objeto HashSet actual y una colección específica comparten elementos comunes.
Quitar (T) Elimina el elemento especificado de un objeto HashSet.
Eliminar Dónde (Predicado) Elimina todos los elementos que coinciden con las condiciones definidas por el predicado especificado de una colección HashSet.
SetEquals(IEnumerable) Determina si un objeto HashSet y la colección especificada contienen los mismos elementos.
SimétricoExceptoCon(IEnumerable) Modifica el objeto HashSet actual para que contenga solo elementos que están presentes en ese objeto o en la colección especificada, pero no en ambos.
Enstringr() Devuelve una string que representa el objeto actual.
RecortarExceso() Establece la capacidad de un objeto HashSet en el número real de elementos que contiene, redondeado a un valor cercano específico de la implementación.
ProbarObtenerValor(T, T) Busca en el conjunto un valor dado y devuelve el valor igual que encuentra, si lo hay.
UniónCon(IEnumerable) Modifica el objeto HashSet actual para que contenga todos los elementos que están presentes en sí mismo, la colección especificada o ambos.

Ejemplo:

// C# code to Check if a HashSet is
// a subset of the specified collection
using System;
using System.Collections.Generic;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a HashSet of integers
        HashSet<int> mySet1 = new HashSet<int>();
  
        // Inserting elements in HashSet
        // mySet1 only contains even numbers less than
        // equal to 10
        for (int i = 1; i <= 5; i++)
            mySet1.Add(2 * i);
  
        // Creating a HashSet of integers
        HashSet<int> mySet2 = new HashSet<int>();
  
        // Inserting elements in HashSet
        // mySet2 contains all numbers from 1 to 10
        for (int i = 1; i <= 10; i++)
            mySet2.Add(i);
  
        // Check if a HashSet mySet1 is a subset
        // of the HashSet mySet2
        Console.WriteLine(mySet1.IsSubsetOf(mySet2));
    }
}

Producción:

True

Ejemplo:

// C# code to check if a HashSet
// contains the specified element
using System;
using System.Collections.Generic;
  
class GFG {
  
    // Driver code
    public static void Main()
    {
  
        // Creating a HashSet of strings
        HashSet<string> mySet = new HashSet<string>();
  
        // Inserting elements in HashSet
        mySet.Add("DS");
        mySet.Add("C++");
        mySet.Add("Java");
        mySet.Add("JavaScript");
  
        // Check if a HashSet contains
        // the specified element
        if (mySet.Contains("Java"))
            Console.WriteLine("Required Element is present");
        else
            Console.WriteLine("Required Element is not present");
    }
}

Producción:

Required Element is present

Referencia:

Publicación traducida automáticamente

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