Что произойдет при вызове put() для ключа, который уже есть в HashMap?

«Что произойдет при вызове put() для ключа, который уже есть в HashMap?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Произойдет замена значения. HashMap обновляет запись для существующего ключа.

Пример:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
Integer oldValue = map.put("apple", 2); // Заменяет 1 на 2

System.out.println(map.get("apple")); // Выведет: 2
System.out.println(oldValue);         // Выведет: 1 (предыдущее значение)

Ключевые детали:

  • Возвращаемое значение: Метод put(K key, V value) возвращает предыдущее значение, связанное с ключом, или null, если ключа не было.
  • Сравнение ключей: Определяется методами equals() и hashCode() ключевого объекта.
  • Размер коллекции: Количество записей (size()) не меняется, так как это замена, а не добавление новой пары.