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. |