Sobes.tech
Junior — Middle

Hogyan viselkedik a HashSet, ha azonos hash-kódú kulcsokkal rendelkező elemek vannak?

sobes.tech MI

Válasz az MI-től

A HashSet Java-ban és Kotlinban egy hash-táblán alapul, és az elemek hash-kódját használja gyors hozzáféréshez. Ha több elem ugyanazzal a hash-kóddal rendelkezik (ütközés), a HashSet ezeket egy 'kád' (bucket) belsejében tárolja, általában láncolt lista vagy fa formájában.

Új elem hozzáadásakor, amelynek hash-kódja már létezik, a HashSet az equals() módszerrel összehasonlítja az elemeket. Ha az elem már létezik, nem kerül hozzáadásra; különben hozzáadódik a kádhoz.

Így azonos hash-kódok megléte nem vezet adatvesztéshez, de ronthatja a műveletek teljesítményét a kádon belüli elemek szekvenciális összehasonlítása miatt.