Коллекция Map представляет коллекцию объектов, где каждый элемент имеет ключ и сопоставляемое с ним значение. При этом все ключи в коллекции являются уникальными. В отличие от List и Set интерфейс Map не расширяет интерфейс Collection.
Map представляет неизменяемую коллекцию, для создания которой применяется метод mapOf().
Функция mapOf принимает набор элементов, каждый из которых с помощью оператора to сопоставляет ключ со значением, например, 1 to "Tom"
(с условным идентификатором пользователя сопоставляется его имя).
В данном случае переменная people представляет объект Map<Int, String>, где первый тип - Int представляет тип ключей (идентификатор пользователя), а второй тип - String представляет тип значений.
Обращение к элементам Map
Для получения элементов по ключу может применяться метод get(), в который передается ключ элемента:
В данном случае переменная dictionary представляет объект Map<String, String>, где ключи представляют строки, а значения - то же строки (условный перевод слова).
Для получения значения по ключу "blue", применяется выражение dictionary.get("blue")
Также можно сократить получение элемента с помощью квадратных скобок:
Если в Map нет элемента с указанным ключом, то возвращается null:
Такое поведение не всегда может быть предпочтительно.
И в этом случае можно использовать пару других методов для получения элементов.
Так, метод getOrDefault() позволяет задать значение по умолчанию, которое будет возврашаться, если по указанному ключу нет элементов:
С помощью методов containsKey() и containsValue() можно проверить наличие в Map определенного ключа и значения соответственно:
MutableMap
Изменяемые коллекции представлены интерфейсом MutableMap, который расширяет интерфейс Map.
Для создания объекта MutableMap применяется функция mutableMapOf().
Добавление данных:
Изменение данных:
Вместо метода set для установки значения могут применяться квадратные скобки, в которые передается ключ элемента:
Удаление данных: