À quel point est-il sûr d'accéder à un élément dans HashMap par une clé qui n'existe pas?
sobes.tech IA
Réponse de l'IA
Lorsqu'on accède à un élément dans HashMap avec une clé inexistante, la méthode get() retourne null. Cela est sûr dans le sens où aucune exception de type IndexOutOfBoundsException ne sera levée, comme cela pourrait être le cas avec un tableau ou une liste lors d'un accès à un index incorrect.
Cependant, si le code ultérieur suppose que le résultat obtenu ne sera pas null (par exemple, lors de l'appel de méthodes sur cet objet), cela peut entraîner une NullPointerException.
Pour un fonctionnement sûr, il est recommandé de :
-
Vérifier le résultat contre
nullavant de l'utiliser :// Exemple de vérification contre null Object value = hashMap.get(nonExistentKey); if (value != null) { // Utiliser value } else { // Gérer le cas de clé absente } -
Utiliser des méthodes qui fournissent une valeur par défaut ou un comportement plus sûr, comme
getOrDefault()(disponible depuis Java 8) :// Exemple d'utilisation de getOrDefault Object value = hashMap.getOrDefault(nonExistentKey, defaultValue); -
Utiliser la construction
Optional(avec Java 8), si cela est approprié, pour indiquer plus explicitement l'absence potentielle de valeur :// Exemple d'utilisation d'Optional Optional<Object> optionalValue = Optional.ofNullable(hashMap.get(nonExistentKey)); if (optionalValue.isPresent()) { // Utiliser la valeur : optionalValue.get() }
Ainsi, accéder directement avec get() est sûr, mais travailler avec une valeur null sans vérification appropriée peut entraîner une NullPointerException.