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