Класс HashMap
Класс HashMap в Java использует хэш-таблицу для реализации интерфейса Map. Это позволяет времени для выполнения основных операций, таких как get () и put (), оставаться постоянным даже для больших множеств.
Конструкторы
Ниже приведен список конструкторов, поддерживаемых классом HashMap.
№ Конструктор и описание
1 HashMap( )
Этот конструктор создает стандартный HashMap по умолчанию.
2 HashMap(Map m)
Этот конструктор инициализирует хэш-карту, используя элементы Map данного объекта m.
3 HashMap(int capacity)
Этот конструктор инициализирует емкость хэш-карты для заданного целочисленного значения, capacity.
4 HashMap(int capacity, float fillRatio)
Этот конструктор инициализирует как ёмкость, так и коэффициент заполнения хэш-карты, используя ее аргументы.
Методы
Помимо методов, унаследованных от родительских классов, HashMap определяет следующие методы:
№ Методы и описание
1 void clear()
Удаляет все соответствия с этого Map.
2 Object clone()
Возвращает мелкую копию этого экземпляра HashMap: сами ключи и значения не клонируются.
3 boolean containsKey(Object key)
Возвращает true, если этот Map содержит отображение для указанного ключа.
4 boolean containsValue(Object value)
Возвращает true, если этот Map отображает одну или несколько клавиш в указанное значение.
5 Set entrySet()
Возвращает представление (вид) коллекции отображений, содержащихся в этом Map.
6 Object get(Object key)
Возвращает значение, для которого указанный ключ отображается в этой хэш-карте идентификатора, или null (нуль), если Map не содержит отображения для этого ключа.
7 boolean isEmpty()
Возвращает true, если этот Map не содержит отображений значений ключа.
8 Set keySet()
Возвращает заданное представление (вид) ключей, содержащихся на этом Map.
9 Object put(Object key, Object value)
Связывает указанное значение с указанным ключом на этом Map.
10 putAll(Map m)
Копирует все отображения с указанного Map на этот Map. Эти отображения заменят любые отображения, которые это отображение имело для любого из ключей, находящихся в настоящее время на указанном Map.
11 Object remove(Object key)
Удаляет отображение для этого ключа с этого Map, если присутствует.
12 int size()
Возвращает количество ключ-значение отображений на этом Map.
13 Collection values()
Возвращает представление (вид) коллекции значений, содержащихся на этой карте.
Пример
Следующая программа демонстрирует работу нескольких методов, поддерживаемых HashMap в Java:
import java.util.*;
public class HashMapDemo {
public static void main(String args[]) {
// Создаём хэш-карту
HashMap hm = new HashMap();
// Помещаем элементы в карту
hm.put("Заря", new Double(3434.34));
hm.put("Марк", new Double(123.22));
hm.put("Айян", new Double(1378.00));
hm.put("Дэйзи", new Double(99.22));
hm.put("Михаил", new Double(-19.08));
// Получаем вид элементов
Set set = hm.entrySet();
// Получаем итератор
Iterator i = set.iterator();
// Отображаем элементы
while(i.hasNext()) {
Map.Entry me = (Map.Entry)i.next();
System.out.print(me.getKey() + ": ");
System.out.println(me.getValue());
}
System.out.println();
// Вносим 1000 на счёт Зари
double balance = ((Double)hm.get("Заря")).doubleValue();
hm.put("Заря", new Double(balance + 1000));
System.out.println("Новый баланс Зари: " + hm.get("Заря"));
}
}
Получим следующий результат:
Дэйзи: 99.22
Айян: 1378.0
Заря: 3434.34
Михаил: -19.08
Марк: 123.22
Новый баланс Зари: 4434.34