Wesukilaye

Your choices please me, for now


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

Dart map

发表于 2019-08-12 更新于 2019-08-13 分类于 Dart
本文字数: 4.6k 阅读时长 ≈ 4 分钟

定义

不指定泛型
1
2
3
4
5
6
7
8
9
10
11
12
13
	var map1 = {'aa':'aaa','bb':22,'cc':true};//直接赋初始值
//print(map1);//{aa: aaa, bb: 22, cc: true}

Map map3 = {"a":"a1","b":"b1"};//直接赋初始值
//print(map3);//{a: a1, b: b1}

var map2 = new Map();
map2['dd']=3.3;
map2[2] = 'ddd22';
//print(map2);//{dd: 3.3, 2: ddd22}
//print(map2[3]);//null 如果不存在,则是null
map2[3]= null;//key存在 value存在 value的值为null
//print(map2.length);//3 长度
指定泛型
1
2
3
4
5
6
7
var map1 = {};
Map map2 = new Map();
map2[1]="a";
map2[2] = "b";
//print(map2);//{1: a, 2: b}
Map map3 = {"a":1,"b":2};
//print(map3);//{a: 1, b: 2}

属性

1
2
3
4
5
6
7
8

Map map6 = {"a":1,"b":2};
//print(map6.length);//2 长度
//print(map6.isNotEmpty);//true 是否不为空
//print(map6.isEmpty);//false 是否为空
//print(map6.keys);//(a, b) key的集合
//print(map6.values);//(1, 2) value的集合
//print(map6.entries);//(MapEntry(a: 1), MapEntry(b: 2)) map迭代的键值对集合

方法

增加
1
2
3
4
 Map map7 = {"a":1,"b":2,"c":3,"d":4,"e":5};
//新增一个key value
map7["f"] = 6;//新增一个不存在的key
//print(map7);//{a: 1, b: 2, c: 3, d: 4, e: 5, f: 6}
修改
直接修改
1
2
3
Map map8 = {"a":1,"b":2,"c":3,"d":4,"e":5};
map8["a"] = 11;
//print(map8);//{a: 11, b: 2, c: 3, d: 4, e: 5}
update() 对指定的key的value做出修改
1
2
3
4
5
6
7
8
 Map map = {"a":1,"b":2,"c":3};
int result3 = map.update("a", (value)=>(value*2));//key存在 根据参数函数修改其值
//print(result3);//2
//print(map);//{a: 2, b: 2, c: 3}
//int result4 = map.update("d", (value)=>(value*2));//key不存在 报错
int result4 = map.update("d", (value)=>(value*2),ifAbsent: ()=>(10));//key不存在 但有ifAbsent参数 返回ifAbsent函数的值 并添加到map中
//print(result4);//10
//print(map23);//{a: 2, b: 2, c: 3, d: 10}
updateAll() 根据参数函数的规则,批量修改map
1
2
3
4
5
6
7
8
9
10
11
12
13
 Map map = {"a":1,"b":2,"c":3};
map.updateAll((String key,int value){
return value*2;
});//
//print(map);//{a: 2, b: 4, c: 6}

Map map2 = {"a":1,"b":2,"c":3};
map2.updateAll((String key,int value){
if(key=="a"){return 10;}
if(key=="b"){return 20;}
return value*2;
});//
//print(map2);//{a: 10, b: 20, c: 6}
删除
remove() 删除一个key
1
2
3
Map map = {"a":1,"b":2,"c":3,"d":4,"e":5};
map.remove("b");
//print(map);//{a: 11, c: 3, d: 4, e: 5}
removeWhere() 根据条件批量删除
1
2
3
Map map = {"a":1,"b":2,"c":3,"d":4,"e":5};
map.removeWhere((key,value)=>(value>3));//删除掉 符合参数函数的keyvalue对
//print(map);//{a: 1, b: 2, c: 3}
包含
containsKey() 是否包含key
1
2
3
Map map = {"a":1,"b":2,"c":3,"d":4,"e":5};
//print(map.containsKey("a"));//true 是否包含key
//print(map.containsKey("aa"));//false 是否包含key
containsValue() 是否包含value值
1
2
3
 Map map = {"a":1,"b":2,"c":3};
//print(map.containsValue(1));//true
//print(map.containsValue(4));//false
遍历
1
2
3
4
5
6
7
8
9
 	Map map = {"a":1,"b":2,"c":3,"d":4,"e":5};
map.forEach((String key,int value){
print("$key $value");
//a 1
//b 2
//c 3
//d 4
//e 5
});
合并
addAll() 整体合并另一个map 泛型要一致
1
2
3
4
5

Map map = {"a":1,"b":2,"c":3};
Map other = {"a":1,"c":4,"d":7};
map.addAll(other);//key相同时value值后者覆盖前者,前者不存在时则添加进来
//print(map);//{a: 1, b: 2, c: 4, d: 7}
addEntries() 合并两个map 如果key有重复,被合并的map的value覆盖前者
1
2
3
4
	Map map = {"a":1,"b":2,"c":3};
Map map1 = {"a":1,"b":4,"d":3,"e":5};
map.addEntries(map1.entries);
//print(map);//{a: 1, b: 4, c: 3, d: 3, e: 5}
  • 本文作者: Mr.Zhao
  • 本文链接: https://wesukilayezcy.github.io/2019/08/12/Dart-map-1/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
Dart 字典 Map
Dart list
Dart 函数
-------------本文结束感谢您的阅读-------------
  • 文章目录
  • 站点概览
Wesukilaye

Wesukilaye

熟练使用iOS Objective-c,Swift. 了解Python爬取网络数据,深入研究移动端开发,目前正在学习Flutter
23 日志
4 分类
16 标签
RSS
GitHub E-Mail bilibili
Links
  • Jacksu
  1. 1. 定义
    1. 1.1. 不指定泛型
    2. 1.2. 指定泛型
  2. 2. 属性
  3. 3. 方法
    1. 3.1. 增加
    2. 3.2. 修改
      1. 3.2.1. 直接修改
      2. 3.2.2. update() 对指定的key的value做出修改
      3. 3.2.3. updateAll() 根据参数函数的规则,批量修改map
    3. 3.3. 删除
      1. 3.3.1. remove() 删除一个key
      2. 3.3.2. removeWhere() 根据条件批量删除
    4. 3.4. 包含
      1. 3.4.1. containsKey() 是否包含key
      2. 3.4.2. containsValue() 是否包含value值
    5. 3.5. 遍历
    6. 3.6. 合并
      1. 3.6.1. addAll() 整体合并另一个map 泛型要一致
      2. 3.6.2. addEntries() 合并两个map 如果key有重复,被合并的map的value覆盖前者
© 2019 Wesukilaye | 62k | 57 分钟
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Pisces v7.3.0