Sobes.tech
Junior — Middle

Miben különböznek az adatszerkezetek, a Dictionary és a HashSet használat és belső felépítés tekintetében?

sobes.tech MI

Válasz az MI-től

Dictionary és HashSet adatstruktúrák C#-ban, amelyek hash-táblákon alapulnak, de különböző célokra és felépítéssel:

  • Dictionary<TKey, TValue> kulcs-érték párokat tartalmazó kollekció. Gyorsan megtalálja az értéket egy egyedi kulcs segítségével. Belsőleg a kulcsok hash-elését használja a gyors hozzáférés érdekében.

  • HashSet<T> egyedi elemek gyűjteménye kulcs-érték párok nélkül. Egyedi objektumok tárolására és gyors keresésére, hozzáadására vagy törlésére szolgál.

Fő különbségek:

  • Dictionary párokat tárol, HashSet csak kulcsokat (elemeket).
  • Dictionary lehetővé teszi az érték elérését a kulcs segítségével, HashSet ellenőrzi, hogy egy elem létezik-e.

Példa:

var dict = new Dictionary<int, string>();
dict[1] = "egy";

var set = new HashSet<int>();
set.Add(1);

bool hasKey = dict.ContainsKey(1); // true
bool hasElement = set.Contains(1); // true

Ezért, ha kulcs-érték párosításra van szükség, válassza a Dictionary-t, ha az egyediség és a gyors keresés fontos, akkor a HashSet-et.