Clojure - Mapy

ZA Mapto kolekcja, która odwzorowuje klucze na wartości. Dostępne są dwa różne typy map - zhaszowane i posortowane.HashMaps wymagają kluczy, które poprawnie obsługują hashCode i equals. SortedMaps wymagają kluczy, które implementują porównywalną lub instancję komparatora.

Mapę można utworzyć na dwa sposoby, pierwszy to metoda hash-map.

Tworzenie - HashMaps

HashMapy mają typową relację klucz-wartość i są tworzone przy użyciu funkcji mapy mieszania.

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

Wynik

Powyższy kod daje następujące dane wyjściowe.

{z 1, b 2, a 3}

Tworzenie - SortedMaps

SortedMaps mają unikalną właściwość sortowania swoich elementów w oparciu o kluczowy element. Poniżej znajduje się przykład pokazujący, jak posortowaną mapę można utworzyć za pomocą funkcji sortowanej mapy.

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

Powyższy kod daje następujące dane wyjściowe.

{a 3, b 2, z 1}

Z powyższego programu widać wyraźnie, że elementy na mapach są posortowane według wartości klucza. Poniżej przedstawiono metody dostępne dla map.

Sr.No. Mapy i opis
1 otrzymać

Zwraca wartość zamapowaną na klucz, not-found lub nil, jeśli klucz nie jest obecny.

2 zawiera?

Sprawdź, czy mapa zawiera wymagany klucz.

3 odnaleźć

Zwraca wpis mapy dla klucza.

4 Klucze

Zwraca listę kluczy na mapie.

5 vals

Zwraca listę wartości na mapie.

6 dissoc

Oddziela wpis wartości klucza od mapy.

7 łączyć

Łączy dwa wpisy mapy w jeden wpis mapy.

8 połączyć z

Zwraca mapę, która składa się z pozostałych map połączonych z pierwszą.

9 klawisze wyboru

Zwraca mapę zawierającą tylko te wpisy w mapie, których klucz jest w kluczach.

10 zmień nazwę kluczy

Zmienia nazwy kluczy w bieżącej HashMap na nowo zdefiniowane.

11 map-invert

Odwraca mapy, tak aby wartości stały się kluczami i na odwrót.