Sobes.tech
Middle

O que acontece se tentar adicionar um par chave-valor ao HashMap, onde o valor é null, e esse par já existe, e hashCode é fixo e equals retorna true?

sobes.tech IA

Resposta da IA

Se no HashMap já existir um par com uma chave cujo hashCode é fixo e equals devolve true, ao adicionar um novo par com a mesma chave e valor null, o valor antigo será substituído por null. Ou seja, o valor associado a essa chave será atualizado para null.

Exemplo:

Map<Key, String> map = new HashMap<>();
Key key = new Key(); // hashCode e equals implementados de forma que sejam sempre iguais
map.put(key, "value");
map.put(key, null); // substituirá "value" por null
System.out.println(map.get(key)); // exibirá null

Assim, o HashMap não impede de armazenar null como valor, e ao adicionar novamente com a mesma chave, o valor é atualizado.