Clojure Maps
映射是将键映射到值的集合。提供了两种不同的映射类型 - 哈希和排序。HashMaps 需要正确支持hashCode和equals的键。 SortedMaps 需要实现可比较的键或比较器的实例。
可以通过两种方式创建映射,第一种是通过哈希映射方法。
创建 - HashMaps
HashMaps具有典型的键值关系,并通过使用哈希映射函数创建。
(ns clojure.examples.example
(:gen-class))
(defn example []
(def demokeys (hash-map "z" "1" "b" "2" "a" "3"))
(println demokeys))
(example)
上面的代码输出以下结果。
{z 1, b 2, a 3}
创建 - SortedMaps
SortedMaps 具有根据关键元素对元素进行排序的独特特性。以下的示例显示如何使用sorted-map函数创建排序的映射。
(ns clojure.examples.example
(:gen-class))
(defn example []
(def demokeys (sorted-map "z" "1" "b" "2" "a" "3"))
(println demokeys))
(example)
上面的代码输出以下结果。
{a 3, b 2, z 1}
从上述程序,您可以清楚地看到映射中的元素按照键值进行排序。以下是可用于映射的方法。
序号 |
映射 & |
说明 |
1 |
get |
返回映射到键的值, 如果键不存在, 则为未找到或零。 |
2 |
contains |
查看映射是否包含必需的键。 |
3 |
find |
返回键的映射项。 |
4 |
keys |
返回映射中的键列表。 |
5 |
vals |
返回该图的值的列表。 |
6 |
dissoc |
从映射中分离键值项。 |
7 |
merge |
将两个映射项合并为一个单独的映射项。 |
8 |
merge-with |
返回一个映射,其中包含第一个映射的其余映射。 |
9 |
select-keys |
返回仅包含映射中的键的项的映射。 |
10 |
rename-keys |
将当前HashMap中的键重命名为新定义的。 |
11 |
map-invert |
反转映射, 使这些值成为键, 反之亦然。 |