Что такое Hashmap в Java? Объяснение с примерами

Опубликовано: 2021-07-02

HashMap — это класс коллекции в Java. Вы можете использовать его для хранения пар ключ-значение. Его производительность зависит от начальной мощности и коэффициента загрузки. HashMap имеет различные методы, позволяющие использовать структуру данных хеш-таблицы.

В следующей статье мы рассмотрим, что такое HashMap, и узнаем о его различных конструкторах на примерах.

Оглавление

Что такое ХэшМап?

HashMap — это класс коллекции, основанный на Map. Мы используем его для хранения пар «ключ-значение». Вы обозначаете HashMap Java как HashMap<K, V>, где K означает ключ, а V означает значение.

HashMap похож на класс Hashtable. Разница между ними в том, что HashMap не синхронизирован, а Hashtable — нет. Кроме того, в отличие от Hashtable, HashMap допускает нулевые значения и нулевой ключ.

Поскольку HashMap не является упорядоченной коллекцией, он не возвращает ключи и значения в том порядке, в котором вы их вставляете. Кроме того, HashMap не сортирует сохраненные ключи и значения. Если вы хотите использовать класс HashMap и его методы, вам придется импортировать java.util.HashMap (или его суперкласс).

HashMap дает вам простую реализацию интерфейса карты Java. Вы можете получить доступ к парам ключ-значение, которые вы храните с помощью HashMap, используя индекс другого типа (например, целое число). Имейте в виду, что если вы используете дубликат ключа, он заменяет элемент соответствующего ключа. Кроме того, вы можете использовать только один нулевой ключевой объект; однако может быть любое количество нулевых значений.

HashMap реализует интерфейсы Cloneable, Serializable, Map<K, V>. Он расширяет класс AbstractMap<K, V>, а его прямыми подклассами являются PrinterStateReasons и LinkedHashMap.

Возможности HashMap

Ниже приведены основные функции HashMap:

  • Это компонент пакета java.util.package.
  • Вы можете использовать повторяющиеся значения, но HashMap не допускает дублирования ключей. Это означает, что один ключ не может иметь несколько значений, но несколько ключей могут иметь одно значение.
  • Вы можете использовать нулевые ключи только один раз, но вы можете использовать различные нулевые значения.
  • HashMap не дает никаких гарантий относительно порядка карты. Таким образом, это не гарантирует, что порядок останется постоянным.
  • HashMap очень похож на Hashtable, с той лишь разницей, что HashMap не синхронизирован.
  • HashMap реализует интерфейс Serializable и Cloneable.

Конструкторы HashMap

В HashMap есть четыре конструктора:

1. Хэш-карта()

HashMap() — это конструктор по умолчанию, который создает экземпляр с коэффициентом загрузки 0,75 и начальной емкостью 16.

Пример :

// Демонстрация работы конструктора HashMap()

импортировать java.io.*;

импортировать java.util.*;

класс AddElementsToHashMap {

public static void main (String args [])

{

// Вам не нужно упоминать

// Общий тип дважды

HashMap<Integer, String> hm1 = new HashMap<>();

// Использование Generics для инициализации HashMap

HashMap<целое число, строка> hm2

= новый HashMap<Integer, String>();

// Используйте метод put для добавления любого элемента

hm1.put(1, «А»);

hm1.put(2, «Б»);

hm1.put(3, "С");

hm2.put(4, "Д");

hm2.put(5, "Е");

hm2.put(6, "F");

System.out.println("Результаты hm1: "

+ хм1);

System.out.println("Результаты HashMap hm2: "

+ хм2);

}

}

Выход :

Результаты hm1: {1=A, 2=B, 3=C}

Результаты hm2: {4=D, 5=E, 6=F}

2. HashMap (целая начальная емкость)

HashMap(int initialCapacity) создаст экземпляр с нагрузкой 0,75 и определенной начальной емкостью.

Пример :

// Демонстрация работы конструктора HashMap(int initialCapacity)

импортировать java.io.*;

импортировать java.util.*;

класс AddElementsToHashMap {

public static void main (String args [])

{

// Вам не нужно упоминать

// Общий тип дважды

HashMap<Integer, String> hm1 = new HashMap<>(10);

// Использование Generics для инициализации HashMap

HashMap<целое число, строка> hm2

= новый HashMap<Integer, String>(2);

// Используйте метод put для добавления любого элемента

hm1.put(1, «А»);

hm1.put(2, «Б»);

hm1.put(3, "С");

hm2.put(4, "Д");

hm2.put(5, "Е");

hm2.put(6, "F");

System.out.println("Результаты hm1: "

+ хм1);

System.out.println("Результаты HashMap hm2: "

+ хм2);

}

}

Выход :

Результаты hm1: {1=A, 2=B, 3=C}

Результаты hm2: {4=D, 5=E, 6=F}

3. HashMap (int initialCapacity, float loadFactor)

HashMap(int initialCapacity, float loadFactor) создает экземпляр с определенным коэффициентом загрузки и начальной емкостью.

Пример :

// Демонстрация работы конструктора HashMap(int initialCapacity, float loadFactor)

импортировать java.io.*;

импортировать java.util.*;

класс AddElementsToHashMap {

public static void main (String args [])

{

// Вам не нужно упоминать

// Общий тип дважды

HashMap<целое число, строка> hm1

= новый HashMap<>(5, 0.75f);

// Использование Generics для инициализации HashMap

HashMap<целое число, строка> hm2

= новый HashMap<Integer, String>(3, 0.5f);

// Используем метод put для добавления элементов

hm1.put(1, «А»);

hm1.put(2, «Б»);

hm1.put(3, "С");

hm2.put(4, "Д");

hm2.put(5, "Е");

hm2.put(6, "F");

System.out.println("Результаты hm1: "

+ хм1);

System.out.println("Результаты HashMap hm2: "

+ хм2);

}

}

Выход :

Результаты hm1: {1=A, 2=B, 3=C}

Результаты hm2: {4=D, 5=E, 6=F}

4. HashMap (карта карты)

HashMap(Map map) создаст экземпляр с теми же сопоставлениями, что и указанная вами карта.

Пример :

// Показываем, как работает конструктор HashMap(Map map)

импортировать java.io.*;

импортировать java.util.*;

класс AddElementsToHashMap {

public static void main (String args [])

{

// Вам не нужно упоминать

// Общий тип дважды

Map<Integer, String> hm1 = new HashMap<>();

// Использование Generics для инициализации HashMap

HashMap<целое число, строка> hm2

= новый HashMap<Integer, String>(hml);

// Используйте метод put для добавления любого элемента

hm1.put(1, «А»);

hm1.put(2, «Б»);

hm1.put(3, "С");

hm2.put(4, "Д");

hm2.put(5, "Е");

hm2.put(6, "F");

System.out.println("Результаты hm1: "

+ хм1);

System.out.println("Результаты HashMap hm2: "

+ хм2);

}

}

Выход :

Результаты hm1: {1=A, 2=B, 3=C}

Результаты hm2: {4=D, 5=E, 6=F}

Узнайте больше о Java

В Java есть много классов, помимо HashMap. Самостоятельно изучить тонкости каждого из этих классов, их использование и интеграцию в Java довольно сложно. Лучший способ справиться с этим процессом — пройти курс компьютерных наук.

Прохождение профессионального курса позволит вам освоить необходимые навыки и концепции с помощью структурированного учебного плана. Кроме того, такие курсы предлагают захватывающий опыт обучения, облегчаемый видео, живыми сеансами и онлайн-лекциями, которые облегчают вам понимание теоретических основ.

Вы можете ознакомиться с нашей программой магистра наук в области компьютерных наук , предлагаемой совместно с LJMU (Ливерпульский университет Джона Мурса, Великобритания) и IIIT-B (Международный институт информационных технологий, Индия). Курс охватывает более 500 часов контента, более 10 лекций в прямом эфире и более 30 тематических исследований.

Этот 19-месячный курс обещает ценностно-ориентированный и глобальный опыт обучения. Самая большая дополнительная ценность заключается в том, что вы можете общаться и взаимодействовать с коллегами со всего мира. upGrad может похвастаться более чем 40 000 оплачиваемых учащихся по всему миру в более чем 85 странах. В результате вы знакомитесь с новыми культурами, новыми мнениями и новыми перспективами, которые расширяют ваш общий кругозор. Мало того, вас обучают опытные наставники из LJMU и IIIT-B, которые оказывают специализированную и индивидуальную помощь, чтобы помочь разрешить ваши сомнения.

Наряду с этими преимуществами, эта программа предоставит вам всестороннюю помощь в карьере, включая отраслевое наставничество, сетевые возможности и многое другое.

Заключение

В этой статье мы узнали, что такое HashMap, его различные конструкторы и как их можно реализовать на примерах. HashMap имеет массу приложений на Java — вы можете использовать HashMap для добавления элементов, их удаления и управления ими по мере необходимости.

Что вы думаете об этом руководстве по HashMap? Поделитесь ими в разделе комментариев ниже.

Повышай свою квалификацию и будь готов к будущему

Подать заявку на курс разработки программного обеспечения формы LJMU