Saturday, February 16, 2019 16:06

Hash Set

Există două tipuri de seturi în domeniul de definiție System.Collections.Generic: SortedSet și HashSet. Ambele oferă funcționalitatea de stocare a elementelor care nu sunt duplicate. Principala diferență dintre ele este faptul că SortedSet are în mod evident articolele sortate. Prin urmare, dacă nu vă interesează ordinea în care sunt stocate elementele, vă recomand să utilizați HashSet, pentru o performanță ușor mai bună. Va fi ușor mai rapidă. În comparație cu o listă, un HashSet are o adăugare mai înceată a elementelor. Cu toate acestea, căutarea, citirea sau ștergerea elementelor este mult, mult mai rapidă, datorită utilizării algoritmilor de hash asupra elementelor.

HashSet nu are o capacitate setată. Capacitatea sa crește odată cu adăugarea de elemente.

Putem atribui direct elementele unui array unui set HashSet, iar intrările duplicate vor fi eliminate:

Structura de date HashSet nu accepta elemente duplicat, și astfel rezultatul va afișa numarul elementelor sale ca fiind mai mic decât cel din array. Ieșirea va arăta astfel:

Cele mai importante metode ale clasei HashSet sunt următoarele:

UnionWith() – putem folosi această metodă pentru a uni (îmbina) elementele deja conținute într-un HashSet cu elementele unei alte colecții.

Rezultatul va fi acesta:

Observați că elementele duplicat au fost eliminate din HashSet-ul fuzionat.

ExceptWith() – Această metodă este complementara metodei UnionWith() – va elimina toate elementele care sunt conținute în ambele structuri de date, inclusiv elementele duplicate.

SymmetricExceptWith() – Aceasta modifică HashSet-ul final pentru a include numai rezultatele care sunt prezente într-unul din HashSet-uri, dar nu ambele. Toate elementele care se potrivesc vor fi eliminate.

Cea mai importantă proprietate a HashSet este:

Count – returnează un număr întreg reprezentând numărul total de elemente din HashSet.

Comments

comments

Tags: ,

Leave a Reply