Что такое Hashmap в Java? Объяснение с примерами
Опубликовано: 2021-07-02HashMap — это класс коллекции в 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? Поделитесь ими в разделе комментариев ниже.