Интерфейс Map

 

Интерфейс Map из пакета java.utii описывает коллекцию, состоящую из пар «ключ — значение». У каждого ключа только одно значение, что соответствует математическому понятию однозначной функции или отображения (тар).

Такую коллекцию часто называют еще словарем (dictionary) или ассоциативным массивом (associative array).

Обычный массив — простейший пример словаря с заранее заданным числом элементов. Это отображение множества первых неотрицательных целых чисел на множество элементов массива, множество пар «индекс массива ^-элемент массива».

Класс HashTable — одна из реализаций интерфейса мар.

Интерфейс Map содержит методы, работающие с ключами и значениями:

boolean containsKey (Object key) — проверяет наличие ключа  key  

boolean containsValue (Object value) — проверяет наличие значения value ;

Set entryset () — представляет коллекцию в виде множества, каждый элемент которого — пара из данного отображения, с которой можно работать методами вложенного интерфейса Map. Entry;

object get (object key) — возвращает значение, отвечающее ключу key; set keyset () — представляет ключи коллекции в виде множества;

Object put(Object key, Object value) — добавляет пару «key— value»,

если такой пары не было, и заменяет значение ключа key, если такой ключ уже есть в коллекции;

void putAii (Map m) — добавляет к коллекции все пары из отображения m;  

collection values () — представляет все значения в виде коллекции.

В интерфейс мар вложен интерфейс Map.Entry , содержащий методы работы с отдельной парой.

 

Вложенный интерфейс Map.Entry

 

Этот интерфейс описывает методы работы с парами, полученными методом entrySet():

методы g etKey() и getvaiue() позволяют получить ключ и значение пары; метод setvaiue (object value) меняет значение в данной паре.

 

Интерфейс SortedMap

 

Интерфейс SortedMap , расширяющий интерфейс Map , описывает упорядоченную по ключам коллекцию мар. Сортировка производится либо в естественном порядке возрастания ключей, либо, в порядке, описываемом в интерфейсе Comparator .

Элементы не нумеруются, но есть понятия большего и меньшего из двух элементов, первого, самого маленького, и последнего, самого большого элемента коллекции. Эти понятия описываются следующими методами:

comparator comparator () — возвращает способ упорядочения коллекции;

object firstKey() — возвращает первый, меньший элемент коллекции;

SortedMap headMap(Object toKey) — возвращает начало коллекции до элемента с ключом toKey исключительно;

object lastKey() — возвращает последний, больший ключ коллекции;

SprtedMap subMap (Object fromKey, Object toKey) — возвращает часть коллекции от элемента с ключом fromKey включительно до элемента с ключом toKey исключительно;

SortedMap taiiMap (object fromKey) — возвращает остаток коллекции от элемента fromKey включительно.

Вы можете создать свои коллекции, реализовав рассмотренные интерфейсы. Это дело трудное, поскольку в интерфейсах много методов. Чтобы облегчить эту задачу, в  Java API введены частичные реализации интерфейсов — абстрактные классы-коллекции.