一架梯子,一头程序猿,仰望星空!

Dart Map类型


Dart语言中map类型,就是一种哈希类型数据,map类型的数据都是由key和value两个值组成,key是唯一的,value不必唯一,读写数据都是通过key进行,map也是泛型类型,支持任意类型数据,key和value可以是任意类型数据。

1.初始化map

例子1:

// 直接以key, value的方式初始化一个map类型变量, key和value都是String类型
var gifts = {
  //格式  Key: Value
  'first': 'partridge',
  'second': 'turtledoves',
  'fifth': 'golden rings'
};

这里定义了Map<String, String> 类型的map变量。

语法格式: Map<Key类型, Value类型>

例子2:

// 直接通过Map类构造一个map类型变量, key类型为String, value类型为int
var data = Map<String, int>();

例子3:

// 通过Map类构件一个可以存储任意key和value类型的map变量
// 相当于定义了一个Map<Object, Object>类型的map
var nobleGases = Map();

2.向map添加数据

使用[]操作符读写map数据。

语法:map变量[key]

// 定义一个空的map变量
var data = Map();
// 向map添加 key等于"key1",value值等于"value1"的数据
data["key1"] = "value1";   
data["key2"] = "value2";

3.查询map数据

// 定义 Map<String, int>类型map
var data = {
    "tizi" : 100,
    "tizi365" : 200
};

// 使用[]操作符,根据key查询对应的value值,如果key不存在则返回null
var v = data["tizi"]; // 值等于100

4.更新map数据

根据key更新map数据和添加map数据,用法一样,如果key值不存在则添加,否则更新key的数据。

// 定义map
var data = {
    "tizi" : 100,
};

// 如果tizi这个key存在的话,那么将他的值更为1001
data["tizi"] = 1001;

print(data);

输出:

{tizi: 1001}

5.删除map数据

通过remove函数可以删除指定的key数据

// 定义map
var data = {
    "tizi" : 100,
};

// 根据tizi这个key删除数据
data.remove("tizi");

删除map所有数据

data.clear();

6.获取map大小

通过length查询map有多少key/value数据

var len = data.length;

7.遍历map数据

可以通过forEach函数遍历map数据。

// 定义map
var data = {
    "tizi" : 100,
    "tizi365" : 200
};

// 通过给forEach函数传递一个闭包函数遍历map
data.forEach((k, v) {
    // 这个闭包函数有两个参数: k 代表map的key, v 代表map的value值
    print(k + " = " + v.toString()); // 打印数据
});

输出:

tizi = 100
tizi365 = 200