Sobes.tech
Middle

Mi történik, ha megpróbálsz hozzáadni egy kulcs-érték párt a HashMap-hez, ahol az érték null, és ez a pár már létezik, és a hashCode fix és az equals igazat ad vissza?

sobes.tech MI

Válasz az MI-től

Ha a HashMap-ben már létezik egy pár kulccsal, amelynek hashCode értéke fix és az equals true-t ad vissza, akkor ugyanazzal a kulccsal és null értékkel új pár hozzáadásakor a régi érték nullra változik. Más szóval, ehhez a kulcshoz kapcsolódó érték nullra frissül.

Példa:

Map<Key, String> map = new HashMap<>();
Key key = new Key(); // hashCode és equals úgy implementálva, hogy mindig ugyanaz legyen
map.put(key, "value");
map.put(key, null); // felülírja a "value" értéket nullra
System.out.println(map.get(key)); // null-t fog kiírni

Így a HashMap nem tiltja a null érték tárolását, és ugyanazzal a kulccsal történő ismételt hozzáadáskor az érték frissül.