Коллекция HashMap
HashMap в Java представляет собой реализацию интерфейса Map, который представляет отображение ключ-значение. Он хранит элементы в виде пары ключ-значение и обеспечивает быстрый доступ к элементам по ключу.
Уникальные ключи:
HashMapне может содержать дубликатов ключей. Каждый ключ должен быть уникальным.Динамическое увеличение размера:
HashMapавтоматически расширяет свой размер при необходимости, когда добавляются новые элементы, чтобы обеспечить эффективное хранение данных.Отсутствие порядка: Элементы в
HashMapне упорядочены. Порядок элементов может меняться с течением времени в зависимости от хэш-функции и коллизий.Быстрый доступ к элементам:
HashMapобеспечивает быстрый доступ к элементам по ключу. В среднем случае (при хорошей хэш-функции) операцииget()иput()имеют временную сложность O(1).Разрешение коллизий:
HashMapиспользует хэш-таблицу для хранения данных и разрешения коллизий при необходимости. При возникновении коллизий элементы хранятся в виде цепочек (списков) или вторичных таблиц, в зависимости от размера таблицы и числа коллизий.Несинхронизированность:
HashMapне является синхронизированным, поэтому он не подходит для использования в многопоточных приложениях без дополнительной синхронизации.
Пример использования HashMap:
import java.util.HashMap;
public class Main {
    public static void main(String[] args) {
        HashMap<String, Integer> map = new HashMap<>();
        // Добавление элементов
        map.put("apple", 10);
        map.put("banana", 20);
        map.put("orange", 30);
        // Получение значения по ключу
        int value = map.get("banana");
        System.out.println("Значение для ключа 'banana': " + value);
        // Проверка наличия ключа
        boolean containsKey = map.containsKey("orange");
        System.out.println("Содержит ключ 'orange'? " + containsKey);
        // Удаление элемента по ключу
        map.remove("apple");
        // Итерация по парам ключ-значение
        for (String key : map.keySet()) {
            int val = map.get(key);
            System.out.println(key + ": " + val);
        }
    }
}Last updated
Was this helpful?