- Clojure 教程
- Clojure - 首页
- Clojure - 概述
- Clojure - 环境
- Clojure - 基本语法
- Clojure - REPL
- Clojure - 数据类型
- Clojure - 变量
- Clojure - 运算符
- Clojure - 循环
- Clojure - 决策
- Clojure - 函数
- Clojure - 数字
- Clojure - 递归
- Clojure - 文件 I/O
- Clojure - 字符串
- Clojure - 列表
- Clojure - 集合
- Clojure - 向量
- Clojure - Map
- Clojure - 命名空间
- Clojure - 异常处理
- Clojure - 序列
- Clojure - 正则表达式
- Clojure - 断言
- Clojure - 解构
- Clojure - 日期和时间
- Clojure - 原子
- Clojure - 元数据
- Clojure - StructMaps
- Clojure - 代理
- Clojure - 观察者
- Clojure - 宏
- Clojure - 参考值
- Clojure - 数据库
- Clojure - Java 接口
- Clojure - 并发编程
- Clojure - 应用
- Clojure - 自动化测试
- Clojure - 库
- Clojure 有用资源
- Clojure - 快速指南
- Clojure - 有用资源
- Clojure - 讨论
Clojure - Map
Map 是一种将键映射到值的集合。提供了两种不同的 map 类型 - 哈希和排序。HashMaps 需要正确支持 hashCode 和 equals 的键。SortedMaps 需要实现 Comparable 的键,或 Comparator 的实例。
Map 可以通过两种方式创建,第一种是通过 hash-map 方法。
创建 - HashMaps
HashMaps 具有典型的键值关系,并且是通过使用 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
SortedMaps 具有根据键元素对元素进行排序的独特特性。以下是一个示例,展示了如何使用 sorted-map 函数创建排序的 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}
从上面的程序中,您可以清楚地看到 map 中的元素是根据键值排序的。以下是 map 可用的方法。
序号 | Map & 描述 |
---|---|
1 | get
返回映射到键的值,如果键不存在则返回 not-found 或 nil。 |
2 | contains?
查看 map 是否包含所需的键。 |
3 | find
返回键的 map 条目。 |
4 | keys
返回 map 中的键列表。 |
5 | vals
返回 map 中的值列表。 |
6 | dissoc
从 map 中分离键值条目。 |
7 | merge
将两个 map 条目合并为一个 map 条目。 |
8 | merge-with
返回一个 map,该 map 由其余 map 连接到第一个 map 上组成。 |
9 | select-keys
返回一个 map,该 map 仅包含 map 中那些键在 keys 中的条目。 |
10 | rename-keys
将当前 HashMap 中的键重命名为新定义的键。 |
11 | map-invert
反转 map,以便值成为键,反之亦然。 |
广告