Sobes.tech
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.