Clojure Maps

2018-09-29 11:30 更新

映射是将键映射到值的集合。提供了两种不同的映射类型 - 哈希和排序。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
反转映射, 使这些值成为键, 反之亦然。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号