Junior
Hogyan történik az objektumok tárolása a HashMap-ben?
sobes.tech MI
Válasz az MI-től
A tárgyak kulcs-érték párok formájában tárolódnak. A HashMap egy "kád" (buckets) tömböt használ. Egy pár hozzáadásakor:
- A kulcs hash-kódját a
hashCode()módszerrel számítják ki. - A hash-kód segítségével meghatározzák a tömbben lévő kád indexét.
- Ebbe a kádba egy
Entrypár kerül (vagy megfelelő a Java újabb verzióiban), amely tartalmazza a kulcsot, az értéket és a hash-kódot. - Ha a kád már tartalmaz objektumokat, azok láncolt listát vagy fát alkotnak (sok ütközés esetén).
Az objektum kulcs szerinti lekérdezésekor:
- A kulcs hash-kódját számítják ki.
- Meghatározzák a kád indexét.
- A kádon belül keresnek egy olyan objektumot, amelynek a kulcsa esetén az
equals()trueértéket ad, és a hash-kódok egyeznek.
A kulcsoknak változatlannak kell lenniük, és helyesen kell implementálniuk a hashCode() és equals() metódusokat.