Sobes.tech
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:

  1. A kulcs hash-kódját a hashCode() módszerrel számítják ki.
  2. A hash-kód segítségével meghatározzák a tömbben lévő kád indexét.
  3. Ebbe a kádba egy Entry pár kerül (vagy megfelelő a Java újabb verzióiban), amely tartalmazza a kulcsot, az értéket és a hash-kódot.
  4. 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:

  1. A kulcs hash-kódját számítják ki.
  2. Meghatározzák a kád indexét.
  3. 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.