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