首页 > 其他 > 详细

[Dart语法]第三章:数据类型-字典类型

时间:2021-02-02 17:19:55      阅读:31      评论:0      收藏:0      [点我收藏+]

字典Map

声明变量

//声明时直接赋值
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}

[Dart语法]第三章:数据类型-字典类型

原文:https://www.cnblogs.com/TobuTobu/p/14362883.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!