Sobes.tech
Middle

Čo sa stane, ak sa pokúsite pridať pár kľúč-hodnota do HashMap, kde je hodnota null, a taký pár už existuje, a hashCode je fixný a equals vracia true?

sobes.tech AI

Odpoveď od AI

Ak v HashMap už existuje pár s kľúčom, ktorého hashCode je fixný a equals vracia true, pri pridávaní nového páru s rovnakým kľúčom a hodnotou null dôjde k nahradeniu starej hodnoty hodnotou null. Inými slovami, hodnota spojená s týmto kľúčom sa aktualizuje na null.

Príklad:

Map<Key, String> map = new HashMap<>();
Key key = new Key(); // hashCode a equals implementované tak, že sú vždy rovnaké
map.put(key, "value");
map.put(key, null); // nahradí "value" null
System.out.println(map.get(key)); // vypíše null

HashMap tak neobmedzuje ukladanie null ako hodnoty, a pri opätovnom pridávaní so rovnakým kľúčom sa hodnota aktualizuje.