Коллекция HashMap

HashMap в Java представляет собой реализацию интерфейса Map, который представляет отображение ключ-значение. Он хранит элементы в виде пары ключ-значение и обеспечивает быстрый доступ к элементам по ключу.

  1. Уникальные ключи: HashMap не может содержать дубликатов ключей. Каждый ключ должен быть уникальным.

  2. Динамическое увеличение размера: HashMap автоматически расширяет свой размер при необходимости, когда добавляются новые элементы, чтобы обеспечить эффективное хранение данных.

  3. Отсутствие порядка: Элементы в HashMap не упорядочены. Порядок элементов может меняться с течением времени в зависимости от хэш-функции и коллизий.

  4. Быстрый доступ к элементам: HashMap обеспечивает быстрый доступ к элементам по ключу. В среднем случае (при хорошей хэш-функции) операции get() и put() имеют временную сложность O(1).

  5. Разрешение коллизий: HashMap использует хэш-таблицу для хранения данных и разрешения коллизий при необходимости. При возникновении коллизий элементы хранятся в виде цепочек (списков) или вторичных таблиц, в зависимости от размера таблицы и числа коллизий.

  6. Несинхронизированность: 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