Коллекции

Слайд 2

Интерфейс Map

Интерфейс Map

Слайд 3

Интерфейс Map Интерфейс Map описывает коллекцию, которую называют ассоциативный массив (словарь,

Интерфейс Map

Интерфейс Map описывает коллекцию, которую называют ассоциативный массив

(словарь, карта отображений). Коллекция Map — это набор пар объектов: ключ и значение, причем ключи являются уникальными. Уникальность ключей определяет реализация метода equals(…).
В любой момент можно получить элемент-значение по заданному ключу.
Поиск объекта (значения) облегчается по сравнению с множествами за счет того, что его можно найти по его уникальному ключу. Если элемент с указанным ключом отсутствует в карте, то возвращается значение null.
Для корректной работы с картами необходимо переопределить методы equals(…) и hashCode() .
Классы, реализующие интерфейс Map :
HashMap – хэш-таблица, в которой ключи отсортированы относительно значений их хэш-кодов.
Эффективность работы HashMap зависит от того, насколько эффективно реализован метод hashCode(). HashMap может принимать в качестве ключа null, но такой ключ может быть только один, значений null может быть сколько угодно.
Hashtable синхронизированная версия HashMap, так как методы у Hashtable синхронизированы, то Hashtable работает медленнее чем HashMap. Null не может быть использован в качестве ключа Hashtable.
LinkedHashMap – связный список, который хранит элементы в порядке вставки.
TreeMap – дерево, где ключи расположены в виде дерева поиска в порядке сортировки.
Порядок сортировки может задаваться реализацией интерфейсов Comparator и Comparable.
Реализация Comparator передается в конструктор TreeMap, Comparable используется при добавлении элемента в карту.
Слайд 4

Интерфейс Map public interface Map { V put(K key, V value);

Интерфейс Map
public interface Map
{ V put(K key,

V value);
V get(Object key);
V remove(Object key);
boolean containsKey(Object key);
boolean containsValue(Object value);
int size();
boolean isEmpty();
void putAll(Map m);
void clear();
public Set keySet();
public Collection values();
public Set> entrySet();
public interface Entry {
K getKey();
V getValue();
V setValue(V value);
}
Слайд 5

Интерфейс Map Интерфейс Map — это обобщенный интерфейс, объявленный как :

Интерфейс Map

Интерфейс Map — это обобщенный интерфейс, объявленный как : interface

Мар<К, V>, здесь К указывает тип ключей, а V — тип хранимых значений.
 Интерфейс Map содержит методы:
size() — возвращает количество элементов (пар) в массиве;
containsKey(Object key) — проверяет, существует ли в массиве элемент с ключом key;
containsValue(Object value) — проверяет, существует ли в массиве элемент со значением value;
get(Object key) — возвращает значение, соответствующее ключу key;
put(Object key, Object value) — добавляет в массив элемент с ключом key и значением value. Если элемент с таким ключом уже существует в массиве, то его значение просто изменяется;
values() — возвращает значения всех элементов массива в виде коллекции (т.е. возвращаемый результат имеет типCollection);
remove(Object key) — удаляет элемент с ключом key, возвращая значение этого элемента (если он есть) и null, если такого элемента не было;
clear() — очищает массив;
isEmpty() — проверяет, не пуст ли массив.
Каждый элемент ассоциативного массива, описываемого интерфейсом Map, имеет интерфейсный тип Map.Entry, который предоставляет три основных метода:
getKey() — возвращает ключ элемента;
getValue() — возвращает значение элемента;
setValue(Object value) — меняет значение элемента.
Метод entrySet(), определенный в интерфейсе Map, позволят получить все элементы ассоциативного массива в виде множества объектов типа Map.Entry.
Слайд 6

Интерфейс SortedMap

Интерфейс SortedMap

Слайд 7

Интерфейс SortedMap SortedMap — наследник интерфейса Map, описывает ассоциативный массив, элементы

Интерфейс SortedMap
SortedMap — наследник интерфейса Map, описывает ассоциативный массив, элементы которого упорядочены

по ключам.
Методы, предоставляемые этим интерфейсом: firstKey(), lastKey(), subMap(Object fromKey, Object toKey),headMap(Object toKey), tailMap(Object fromKey) аналогичны методам интерфейса SortedSet. Данный интерфейс реализуется, например, в классе TreeMap. Один из конструкторов этого класса принимает объект типа Comparator, посредством которого можно задать свой собственный порядок сортировки.
Слайд 8

Интерфейс Map и класс HashMap Пример .

Интерфейс Map и класс HashMap

Пример .

Слайд 9

Интерфейс Map и класс HashMap Пример .

Интерфейс Map и класс HashMap

Пример .

Слайд 10

Интерфейс Map и класс HashMap Пример .

Интерфейс Map и класс HashMap

Пример .