Найти в Дзене
KOTLIN_IT

Урок №53 по Котлин. Map

Оглавление
Коллекция Map представляет коллекцию объектов, где каждый элемент имеет ключ и сопоставляемое с ним значение. При этом все ключи в коллекции являются уникальными. В отличие от List и Set интерфейс Map не расширяет интерфейс Collection.

Map представляет неизменяемую коллекцию, для создания которой применяется метод mapOf().

-2

Функция mapOf принимает набор элементов, каждый из которых с помощью оператора to сопоставляет ключ со значением, например, 1 to "Tom"
(с условным идентификатором пользователя сопоставляется его имя).

В данном случае переменная people представляет объект Map<Int, String>, где первый тип - Int представляет тип ключей (идентификатор пользователя), а второй тип - String представляет тип значений.

Обращение к элементам Map

Для получения элементов по ключу может применяться метод get(), в который передается ключ элемента:

-3

В данном случае переменная dictionary представляет объект Map<String, String>, где ключи представляют строки, а значения - то же строки (условный перевод слова).

Для получения значения по ключу "blue", применяется выражение dictionary.get("blue")

Также можно сократить получение элемента с помощью квадратных скобок:

-4

Если в Map нет элемента с указанным ключом, то возвращается null:

-5

Такое поведение не всегда может быть предпочтительно.

И в этом случае можно использовать пару других методов для получения элементов.

Так, метод getOrDefault() позволяет задать значение по умолчанию, которое будет возврашаться, если по указанному ключу нет элементов:

-6

С помощью методов containsKey() и containsValue() можно проверить наличие в Map определенного ключа и значения соответственно:

-7

MutableMap

Изменяемые коллекции представлены интерфейсом MutableMap, который расширяет интерфейс Map.

Для создания объекта MutableMap применяется функция mutableMapOf().

-8

Добавление данных:

-9

Изменение данных:

-10

Вместо метода set для установки значения могут применяться квадратные скобки, в которые передается ключ элемента:

-11

Удаление данных:

-12