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.