Sobes.tech
Назад к вопросам
Junior — Middle
64

Возможна ли ситуация, когда после добавления новой пары ключ-значение в HashMap, поиск значения по этому ключу возвращает null?

Компании, где спрашивали
AstonAston

Ответ от нейросети

sobes.tech AI

В стандартной реализации HashMap в Java ситуация, когда после успешного добавления пары ключ-значение метод get(key) возвращает null, возможна, но только в двух случаях:

  1. Если значение, связанное с ключом, действительно равно null. В HashMap можно хранить значения null, и метод get вернёт null в этом случае.
  2. Если ключ не был добавлен или был удалён.

Если вы только что добавили пару ключ-значение, и значение не null, то get(key) должен вернуть это значение. Исключения могут возникнуть, если:

  • Ключ переопределяет методы hashCode() и equals() некорректно, из-за чего поиск не находит ключ.
  • Используется несколько потоков без синхронизации, и происходит состояние гонки.

Пример:

HashMap<String, String> map = new HashMap<>();
map.put("key1", null);
System.out.println(map.get("key1")); // Выведет: null

map.put("key2", "value2");
System.out.println(map.get("key2")); // Выведет: value2