Junior — Middle
Quais são as diferenças entre as estruturas de dados Dictionary e HashSet em termos de uso e funcionamento interno?
sobes.tech IA
Resposta da IA
Dictionary e HashSet são estruturas de dados em C# baseadas em tabelas de hash, mas com objetivos e estruturas diferentes:
-
Dictionary<TKey, TValue> é uma coleção de pares chave-valor. Permite encontrar rapidamente um valor por uma chave única. Internamente usa hashing de chaves para acesso rápido.
-
HashSet<T> é uma coleção de elementos únicos sem pares chave-valor. Usada para armazenar um conjunto de objetos únicos e para buscas, adições ou remoções rápidas.
Principais diferenças:
- Dictionary armazena pares, HashSet apenas chaves (elementos).
- Dictionary permite obter o valor pela chave, HashSet verifica a existência de um elemento.
Exemplo:
var dict = new Dictionary<int, string>();
dict[1] = "um";
var set = new HashSet<int>();
set.Add(1);
bool hasKey = dict.ContainsKey(1); // true
bool hasElement = set.Contains(1); // true
Portanto, escolha Dictionary quando precisar associar uma chave a um valor, e HashSet quando a unicidade e a busca rápida de elementos forem importantes.