Clojure - 地图


Map是将映射到值的集合。提供了两种不同的映射类型 - 散列映射和排序映射。HashMap需要正确支持 hashCode 和 equals 的键。SortedMap需要实现 Comparable 的键或 Comparator 的实例。

可以通过两种方式创建映射,第一种是通过哈希映射方法。

创建 - HashMap

HashMap 具有典型的键值关系,是使用 hash-map 函数创建的。

(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

SortedMap 具有根据键元素对其元素进行排序的独特特征。以下示例展示了如何使用排序映射函数创建排序映射。

(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 得到

返回映射到键的值,未找到或 nil(如果键不存在)。

2 包含?

查看地图是否包含所需的密钥。

3 寻找

返回键的映射条目。

4

返回映射中的键列表。

5 瓦尔斯

返回地图中的值列表。

6 解散

将键值条目与映射解除关联。

7 合并

将两个映射条目合并为一个映射条目。

8 合并

返回一个映射,该映射由连接到第一个映射的其余映射组成。

9 选择键

返回一个映射,仅包含映射中键为 key 的条目。

10 重命名键

将当前 HashMap 中的键重命名为新定义的键。

11 地图反转

反转映射,使值成为键,反之亦然。