Sobes.tech
Junior

À 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 null avant 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.