Назад к вопросам
Aston
Junior — Middle
64
Возможна ли ситуация, когда после добавления новой пары ключ-значение в HashMap, поиск значения по этому ключу возвращает null?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В стандартной реализации HashMap в Java ситуация, когда после успешного добавления пары ключ-значение метод get(key) возвращает null, возможна, но только в двух случаях:
- Если значение, связанное с ключом, действительно равно
null. ВHashMapможно хранить значенияnull, и методgetвернётnullв этом случае. - Если ключ не был добавлен или был удалён.
Если вы только что добавили пару ключ-значение, и значение не 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