Junior — Middle
Existe uma situação em que, após adicionar um novo par chave-valor ao HashMap, a pesquisa do valor por essa chave retorna null?
sobes.tech IA
Resposta da IA
В стандартной реализации 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