Інтерфейс Map (англійською відображення) — пізніший і досконаліший від Dictionary засіб для опрацювання пар ключ/значення.
Методи Map
-
clear() — видаляє всі пари ключ/значення;
-
containsKey(k) — повертає true, якщо є пара з ключем k. Інакше повертає false;
-
containsValue(v) — повертає true, якщо є пара зі значенням v. Інакше повертає false;
-
entrySet() — повертає набір записів, що містить об'єкти Map.Entry. Цей метод забезпечує перегляд набору викликаного відображення (Map);
-
get(k) — повертає об'єкт-значення, пов'язане з об'єктом-ключем k. Якщо такого елемента не має, то повертає значення null;;
-
getOrDefault(k, d) — повертає об'єкт-значення, пов'язане із об'єктом-ключем k. Якщо такого елемента не має, то повертає значення d;
-
isEmpty() — повертає true, якщо відображення порожнє. Інакше повертає false;
-
keySet() — повертає набір, який містить ключі викликаного відображення;
-
put(k, v) — вставляє пару (k, v), перезаписуючи будь-яке попереднє значення, пов'язане з ключем k. Повертає null, якщо ключа k немає. Інакше повертає попереднє значення, пов'язане з ключем k;
-
putIfAbsent(k, v) — вставляє пару (k, v), якщо ключа k немає;
-
putAll(m) — вставляє всі записи з m (клас Map);
-
remove(k) — видаляє запис, ключ якого дорівнює об'єкту k;
-
size() — повертає кількість (тип int) пар ключів/значень;
-
values() — повертає колекцію значень відображення. Цей метод забезпечує перегляд значень.
Деякі методи породжують такі винятки:-
NoSuchElementException — коли у викликаному відображенні немає елементів;
-
ClassCastException — коли об'єкт несумісний із елементами відображення;
-
NullPointerException — коли роблять спробу використовувати null, а він недопустимий для викликаного відображення;
-
UnsupportedOperationException — коли намагаються змінити незмінну карту
Методи узагальненого інтерфейсу Map.Entry<K,V>
для пар з ключем типу K і значенням типу V:-
equals(o) — повертає true, якщо об'єкт o ідентичний поточному, інакше — false;
-
getKey() — повертає ключ об'єкта відображення;
-
getValue() — повертає значення об'єкта відображення;
-
setValue(v) — встановлює для поточного об'єкта значення v;
-
hashCode() — повертає хеш-код поточного об'єкта.
Див. приклад коду
package work;
import java.util.*;
public class Work
{ public static void main(String[] args)
{ Map<Integer, String> m = new HashMap<Integer, String>();
m.put(1, "Буковина");
m.put(2, "Волинь");
m.put(3, "Галичина");
m.put(4, "Закарпаття");
System.out.println(m.get(2));
if (m.containsKey(5)) System.out.println("Є ключ 5");
else System.out.println("Немає ключа 5");
if (m.containsValue("Галичина"))
System.out.println("Є значення Галичина");
else System.out.println("Немає значення Галичина");
Set<Integer> keys = m.keySet();
System.out.println("Ключі: "+keys);
Collection<String> values = m.values();
System.out.println("Значення: "+values);
m.replace(4, "Центр Європи");
m.remove(1);
m.remove(3);
for(Map.Entry<Integer, String> i : m.entrySet())
{ System.out.printf("(%d, %s) -> (%d, %d) = %d\n",
i.getKey(), i.getValue(),
i.getKey().hashCode(), i.getValue().hashCode(),
i.hashCode());
}
}
}
з таким виведенням.
Волинь
Немає ключа 5
Є значення Галичина
Ключі: [1, 2, 3, 4]
Значення: [Буковина, Волинь, Галичина, Закарпаття]
(2, Волинь) -> (2, 803084344) = 803084346
(4, Центр Європи) -> (4, 685162137) = 685162141