当前位置: 首页 > 文档资料 > Clojure 中文教程 >

Maps

优质
小牛编辑
126浏览
2023-12-01

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

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

创作 - HashMaps

HashMaps具有典型的键值关系,并使用哈希映射函数创建。

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

输出 (Output)

上面的代码产生以下输出。

{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}

从上面的程序中,您可以清楚地看到地图中的元素按键值排序。 以下是可用于地图的方法。

Sr.No.地图和描述
1get

如果key不存在,则返回映射到key,not-found或nil的值。

2contains?

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

3find

返回键的映射条目。

4keys

返回地图中的键列表。

5vals

返回地图中的值列表。

6dissoc

从地图中分离键值条目。

7merge

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

8merge-with

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

9select-keys

返回一个映射,该映射仅包含键中键的那些条目。

10rename-keys

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

11map-invert

反转地图,使值成为键,反之亦然。