Clojure - Mappe
UN Mapè una raccolta che associa le chiavi ai valori. Sono disponibili due diversi tipi di mappe: hash e ordinate.HashMaps richiedono chiavi che supportino correttamente hashCode ed è uguale a. SortedMaps richiedono chiavi che implementino Comparable o un'istanza di Comparator.
Una mappa può essere creata in due modi, il primo è tramite il metodo hash-map.
Creazione - HashMaps
Le HashMap hanno una tipica relazione valore-chiave e vengono create utilizzando la funzione hash-map.
(ns clojure.examples.example
(:gen-class))
(defn example []
(def demokeys (hash-map "z" "1" "b" "2" "a" "3"))
(println demokeys))
(example)
Produzione
Il codice precedente produce il seguente output.
{z 1, b 2, a 3}
Creazione - SortedMaps
SortedMaps ha la caratteristica unica di ordinare i propri elementi in base all'elemento chiave. Di seguito è riportato un esempio che mostra come è possibile creare la mappa ordinata utilizzando la funzione mappa ordinata.
(ns clojure.examples.example
(:gen-class))
(defn example []
(def demokeys (sorted-map "z" "1" "b" "2" "a" "3"))
(println demokeys))
(example)
Il codice precedente produce il seguente output.
{a 3, b 2, z 1}
Dal programma di cui sopra puoi vedere chiaramente che gli elementi nelle mappe sono ordinati in base al valore della chiave. Di seguito sono riportati i metodi disponibili per le mappe.
Sr.No. | Mappe e descrizione |
---|---|
1 | ottenere Restituisce il valore mappato su key, not-found o nil se key non è presente. |
2 | contiene? Verifica se la mappa contiene una chiave richiesta. |
3 | trova Restituisce la voce della mappa per la chiave. |
4 | chiavi Restituisce l'elenco delle chiavi nella mappa. |
5 | vals Restituisce l'elenco dei valori nella mappa. |
6 | dissoc Dissocia una voce di valore chiave dalla mappa. |
7 | unire Unisce due voci di mappa in una singola voce di mappa. |
8 | fondersi con Restituisce una mappa che consiste nel resto delle mappe riunite nella prima. |
9 | tasti di selezione Restituisce una mappa contenente solo le voci nella mappa la cui chiave è in keys. |
10 | rinomina-chiavi Rinomina le chiavi nella HashMap corrente con quelle appena definite. |
11 | map-invert Inverte le mappe in modo che i valori diventino le chiavi e viceversa. |