//声明时直接赋值
Map age = {‘john‘: 16, ‘lody‘: 20, ‘susan‘: 18};
//先声明再赋值,new在dart中可以省略
Map p = new Map();
p["name"] = "李四";
p["age"] = 22;
p["work"] = "面包师";
print(age); //{john: 16, lody: 20, susan: 18}
print(p); //{name: 李四, age: 22, work: 面包师}
Map map = {‘name‘: ‘tobu‘, ‘age‘: 25, ‘sex‘: ‘male‘, ‘favorite‘: ‘code‘};
//长度
print(map.length); //4
//keys键
print(map.keys); //(name, age, sex, favorite)
//values值
print(map.values); //(tobu, 25, male, code)
//是否不为空
print(map.isNotEmpty); //true
//是否为空
print(map.isEmpty); //false
//数据条目
print(map.entries); //(MapEntry(name: tobu), MapEntry(age: 25), MapEntry(sex: male), MapEntry(favorite: code))
Map map = {‘name‘: ‘tobu‘, ‘sex‘: ‘male‘, ‘favorite‘: ‘code‘};
//addAll在尾部插入多个新键值对
map.addAll({‘age‘: 25});
print(map);//{name: tobu, sex: male, favorite: code, age: 25}
//addEntries 利用entries属性插入元素
Map map = {‘name‘: ‘tobu‘, ‘sex‘: ‘male‘, ‘favorite‘: ‘code‘};
Map map2 = {‘age‘: 25, ‘sports‘: ‘football‘};
map.addEntries(map2.entries);
print(map);
//如果键存在返回键的值,否则返回设置的值
Map map = {‘name‘: ‘tobu‘, ‘sex‘: ‘male‘, ‘favorite‘: ‘code‘};
map.putIfAbsent(‘name‘, () => ‘carlos‘);//tobu
print(map);//{name: tobu, sex: male, favorite: code}
map.putIfAbsent(‘secName‘, () => ‘carlos‘);//carlos
print(map);//{name: tobu, sex: male, favorite: code, secName: carlos}
Map map = {‘name‘: ‘tobu‘, ‘sex‘: ‘male‘, ‘favorite‘: ‘code‘};
//remove删除指定值
map.remove(‘name‘);
print(map);//{sex: male, favorite: code}
//removeWhere删除满足条件的元素
map.removeWhere((key, value) => value == ‘male‘);
print(map);//{name: tobu, favorite: code}
//清空字典
map.clear();
print(map);//{}
//update按键名更新
Map map = {‘name‘: ‘tobu‘, ‘sex‘: ‘male‘, ‘favorite‘: ‘code‘};
map.update(‘name‘, (value) => ‘carlos‘);
print(map);//{name: carlos, sex: male, favorite: code}
//updateAll按条件更新
Map map2 = {1: 100, 2: 300, 3: 400};
map2.updateAll((key, value) => key < 2 ? value = ‘new‘ : value);
print(map2);//{1: new, 2: 300, 3: 400}
Map map = {‘name‘: ‘tobu‘, ‘sex‘: ‘male‘, ‘favorite‘: ‘code‘};
//按键名查询值
print(map[‘name‘]);
//containsKey key是否存在
print(map.containsKey(‘sex‘));//true
//containsValue value是否存在
print(map.containsValue(‘tobu‘));//true
//forEach
Map map = {‘name‘: ‘tobu‘, ‘sex‘: ‘male‘, ‘favorite‘: ‘code‘};
map.forEach((key, value) {
print(‘$key:$value‘);
});
/*
name:tobu
sex:male
favorite:code
*/
//toString
Map map = {‘name‘: ‘tobu‘, ‘sex‘: ‘male‘, ‘favorite‘: ‘code‘};
print(map.toString());//{name: tobu, sex: male, favorite: code}
原文:https://www.cnblogs.com/TobuTobu/p/14362883.html