Учебники

Clojure — Карты

Карта — это коллекция, которая сопоставляет ключи со значениями. Предусмотрено два разных типа карт — хешированные и отсортированные. HashMaps требуют ключи, которые правильно поддерживают hashCode и равны. Для SortedMaps требуются ключи, которые реализуют Comparable, или экземпляр Comparator.

Карта может быть создана двумя способами, первый — с помощью метода hash-map.

Создание — HashMaps

HashMaps имеют типичное отношение ключ-значение и создаются с помощью функции hash-map.

Live Demo

(ns clojure.examples.example
   (:gen-class))
(defn example []
   (def demokeys (hash-map "z" "1" "b" "2" "a" "3"))
   (println demokeys))
(example)

Выход

Приведенный выше код производит следующий вывод.

{z 1, b 2, a 3}

Создание — SortedMaps

SortedMaps имеют уникальную характеристику сортировки своих элементов на основе ключевого элемента. Ниже приведен пример, который показывает, как отсортированная карта может быть создана с помощью функции sorted-map.

Live Demo

(ns clojure.examples.example
   (:gen-class))
(defn example []
   (def demokeys (sorted-map "z" "1" "b" "2" "a" "3"))
   (println demokeys))
(example)

Приведенный выше код производит следующий вывод.

{a 3, b 2, z 1}

Из приведенной выше программы вы можете четко видеть, что элементы на картах отсортированы по значению ключа. Ниже приведены методы, доступные для карт.

Возвращает значение, сопоставленное ключу, not-found или nil, если ключ отсутствует.

Посмотрите, содержит ли карта требуемый ключ.

Возвращает запись карты для ключа.

Возвращает список ключей на карте.

Возвращает список значений на карте.

Разъединяет запись значения ключа с карты.

Объединяет две записи карты в одну запись карты.

Возвращает карту, которая состоит из остальных карт, соединенных с первой.

Возвращает карту, содержащую только те записи в карте, ключ которых находится в ключах.

Переименовывает ключи в текущем HashMap во вновь определенные.

Инвертирует карты так, что значения становятся ключами, и наоборот.