Junior
O que é HashSet em C#?
sobes.tech IA
Resposta da IA
HashSet<T> é uma coleção não ordenada de elementos únicos. Baseia-se numa tabela de hash e fornece operações rápidas de adição, remoção e verificação de existência de elementos (em média, em tempo constante, O(1)).
Principais características do HashSet<T>:
- Unicidade: Não pode conter duplicados. Ao tentar adicionar um elemento existente, a operação é ignorada.
- Não ordenado: Os elementos não são armazenados numa ordem específica. A ordem de iteração pode diferir da ordem de inserção.
- Desempenho: Graças ao uso de hashing, as operações de busca, adição e remoção têm, em média, complexidade O(1). No pior caso (com má função de hash ou colisões), o desempenho pode diminuir.
- Operações múltiplas: Suporta várias operações, como união (
UnionWith), interseção (IntersectWith), diferença (ExceptWith), verificação de subconjunto ou superconjunto (IsSubsetOf,IsSupersetOf).
Exemplo de uso:
// Criação de HashSet
HashSet<string> fruits = new HashSet<string>();
// Adicionar elementos
fruits.Add("maçã");
fruits.Add("banana");
fruits.Add("laranja");
fruits.Add("maçã"); // Será ignorado, pois "maçã" já existe
// Verificar existência de um elemento
bool hasBanana = fruits.Contains("banana"); // true
bool hasGrape = fruits.Contains("uva"); // false
// Remover um elemento
fruits.Remove("laranja");
// Iterar sobre os elementos
foreach (string fruit in fruits)
{
// Saída: maçã, banana (a ordem pode variar)
Console.WriteLine(fruit);
}
// Tamanho da coleção
int count = fruits.Count; // 2
HashSet<T> implementa as interfaces ICollection<T>, IEnumerable<T> e ISet<T>, permitindo usá-lo em vários cenários de coleções e realizar operações específicas de conjuntos.