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 反转映射, 使这些值成为键, 反之亦然。 |