Clojure Maps

2018-09-29 11:30 更新

映射是將鍵映射到值的集合。提供了兩種不同的映射類型 - 哈希和排序。HashMaps 需要正確支持hashCode和equals的鍵。 SortedMaps 需要實(shí)現(xiàn)可比較的鍵或比較器的實(shí)例。

可以通過兩種方式創(chuàng)建映射,第一種是通過哈希映射方法。

創(chuàng)建 - HashMaps

HashMaps具有典型的鍵值關(guān)系,并通過使用哈希映射函數(shù)創(chuàng)建。

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

輸出

上面的代碼輸出以下結(jié)果。

{z 1, b 2, a 3}

創(chuàng)建 - SortedMaps

SortedMaps 具有根據(jù)關(guān)鍵元素對(duì)元素進(jìn)行排序的獨(dú)特特性。以下的示例顯示如何使用sorted-map函數(shù)創(chuàng)建排序的映射。

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

上面的代碼輸出以下結(jié)果。

{a 3, b 2, z 1}

從上述程序,您可以清楚地看到映射中的元素按照鍵值進(jìn)行排序。以下是可用于映射的方法。

序號(hào) 映射 & 說明
1 get

返回映射到鍵的值, 如果鍵不存在, 則為未找到或零。

2 contains
查看映射是否包含必需的鍵。
3 find
返回鍵的映射項(xiàng)。
4 keys
返回映射中的鍵列表。
5 vals

返回該圖的值的列表。

6 dissoc
從映射中分離鍵值項(xiàng)。
7 merge
將兩個(gè)映射項(xiàng)合并為一個(gè)單獨(dú)的映射項(xiàng)。
8 merge-with
返回一個(gè)映射,其中包含第一個(gè)映射的其余映射。
9 select-keys

返回僅包含映射中的鍵的項(xiàng)的映射。

10 rename-keys
將當(dāng)前HashMap中的鍵重命名為新定義的。
11 map-invert
反轉(zhuǎn)映射, 使這些值成為鍵, 反之亦然。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)