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