Quão seguro é acessar um elemento em HashMap por uma chave que não existe?
sobes.tech IA
Resposta da IA
Ao aceder a um elemento em HashMap através de uma chave inexistente, o método get() devolve null. Isto é seguro no sentido de que não ocorrerá uma exceção do tipo IndexOutOfBoundsException, como aconteceria, por exemplo, com um array ou uma lista ao aceder a um índice incorreto.
No entanto, se o código subsequente assume que o resultado obtido não será null (por exemplo, ao chamar métodos nesse objeto), isso pode levar a uma NullPointerException.
Para uma operação segura, recomenda-se:
-
Verificar o resultado por
nullantes de o usar:// Exemplo de verificação por null Object value = hashMap.get(nonExistentKey); if (value != null) { // Usar value } else { // Lidar com o caso de chave inexistente } -
Usar métodos que fornecem um valor padrão ou comportamento mais seguro, como
getOrDefault()(disponível desde Java 8):// Exemplo de uso de getOrDefault Object value = hashMap.getOrDefault(nonExistentKey, defaultValue); -
Utilizar a construção
Optional(com Java 8), se for apropriado, para indicar de forma mais explícita a possível ausência de valor:// Exemplo de uso de Optional Optional<Object> optionalValue = Optional.ofNullable(hashMap.get(nonExistentKey)); if (optionalValue.isPresent()) { // Usar o valor: optionalValue.get() }
Desta forma, o acesso direto com get() é seguro, mas trabalhar com um valor null sem a verificação adequada pode causar uma NullPointerException.