Назад к вопросам
Junior — Middle
70
Что произойдет в HashMap, если вставить пару ключ-значение с ключом, который уже существует в карте?
Ответ от нейросети
sobes.tech AI
Что хотят услышать интервьюеры:
Если ключ уже есть в HashMap, то новая пара не добавится как отдельная запись. Старое значение по этому ключу будет заменено новым. При этом сам ключ в карте остается один, а операция put обычно возвращает предыдущее значение.
Определение:
HashMap хранит уникальные ключи. Если при вставке используется уже существующий ключ, структура находит текущую запись по хешу и ключу, после чего обновляет значение, связанное с этим ключом. Таким образом, дубликаты ключей в карте не появляются.
Пример использования:
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("user1", "Alice");
String oldValue = map.put("user1", "Bob");
System.out.println(oldValue); // Alice
System.out.println(map.get("user1")); // Bob
}
}
Пояснение кода:
- Сначала в карту добавляется ключ
"user1"со значением"Alice". - Затем выполняется
put("user1", "Bob")с тем же ключом. HashMapнаходит существующую запись по этому ключу и заменяет значение"Alice"на"Bob".- Метод
putвозвращает старое значение, поэтому вoldValueпопадет"Alice". - После замены
get("user1")возвращает уже новое значение"Bob".
Ключевые моменты:
- Ключи в
HashMapуникальны, значения — нет. - При вставке с существующим ключом старое значение перезаписывается.
putвозвращает предыдущее значение для этого ключа илиnull, если ключа раньше не было.- Дубликат записи с тем же ключом не создается.
- Поведение зависит от корректной реализации
equals()иhashCode()у ключа.