Понимание класса HashMap необходимо разработчикам как при работе с реальными приложениями, так и на собеседованиях. В этом посте мы рассмотрим, как вставлять, обновлять и управлять парами ключ-значение в HashMap. Эти знания также заложат основу для нашей следующей статьи, в которой мы углубимся в HashSet и посмотрим, как связаны эти две коллекции.
HashMap хранит данные в виде пар ключ-значение, что позволяет эффективно осуществлять поиск, обновление и удаление. Вот некоторые важные характеристики:
Давайте рассмотрим это поведение более подробно с помощью фрагментов кода.
Метод put() добавляет на карту пару ключ-значение. Однако, если ключ уже существует, старое значение будет заменено.
Mapmap = new HashMap(); // Insert two key-value pairs map.put(1, 2); map.put(2, 3);
Объяснение:
Здесь мы вставляем две записи:
А что произойдет, если мы попытаемся вставить новое значение с тем же ключом?
// Replacing an existing value map.put(2, 4); // Key 2 already exists, so the value is replaced.
Ключ 2 уже существовал со значением 3, но когда мы вызываем put(2, 4), новое значение 4 заменяет старое. Это поведение HashMap по умолчанию.
Во многих ситуациях вы можете не захотеть заменять значения, если ключ уже существует — это может привести к потере данных, если не обращаться с ними осторожно. В таких случаях мы можем использовать метод putIfAbsent().
// Ensuring value isn't replaced if key exists map.putIfAbsent(2, 5);
Метод putIfAbsent() вставляет значение только в том случае, если указанный ключ еще не присутствует на карте. Поскольку ключ 2 уже связан со значением 4, вызов метода здесь не имеет никакого эффекта.
System.out.println(map); // Output: {1=2, 2=4}
Вывод показывает, что ключ 2 сохраняет значение 4, поскольку метод putIfAbsent() не перезаписал существующее значение.
Класс HashMap — мощный инструмент в Java для хранения пар ключ-значение, но очень важно понимать его поведение при дублировании ключей. Знание того, когда использовать put(), а когда putIfAbsent(), поможет вам избежать потери данных и написать эффективный код. Благодаря средней сложности времени выполнения базовых операций O(1) HashMap является идеальным выбором для многих задач, критичных к производительности.
Следите за обновлениями в следующем посте, в котором мы рассмотрим HashSet и то, как он обеспечивает уникальность с помощью внутреннего использования HashMap!
Основы Java
Основы собеседования с Array
Основы памяти Java
Удачного программирования!
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3