
声明
Map names = {'name':'weiza','sex':'1'}; print(names); names['address'] = '北京'; //添加 names['sex'] = '2'; //修改 print(names); //指定泛型 Map<String, String> citys = new Map(); citys['cityname'] = '北京'; citys['cityid'] = '10001'; print(citys); citys['1'] = '1'; print(citys);
属性
print(citys.length); //长度 print(citys.isEmpty); //是否为空 print(citys.isNotEmpty); //是否不为空 print(citys.keys);// key的集合 print(citys.values);//value的集合 //(MapEntry(cityname: 北京), MapEntry(cityid: 10001), MapEntry(1: 1)) print(citys.entries);// map迭代的键值对集合
方法
citys.update('1', (value)=>(value+'23')); //存在的值可以直接修改,不存在的值就直接报错 print(citys); //key不存在,因为用ifAbsent参数, 返回ifAbsent函数的值,并添加到map中 citys.update('2', (value)=>(value+'34'), ifAbsent: ()=>('123')); print(citys); //updateAll根据参数函数的规则,批量修改app Map<String,int> map1 = {'a':1,"b":2,"c":3}; //指定泛型初始化map map1.updateAll((k,v){ return v*2; }); print(map1); map1.updateAll((k,v){ if(k=='a'){return 100;} if(k=='b'){return 200;} return v*10; }); print(map1); //删除一个key remove map1.remove('a'); print(map1); //根据条件批量删除 Map<String,int> map10 = {"a":1,"b":2,"c":3,"d":4,"e":5}; map10.removeWhere((k,v)=>(v>3)); //删掉符号参数函数keyvalue对 print(map10); //{a: 1, b: 2, c: 3} //是否包含 map10.containsKey('a'); //是否包含key map10.containsValue(1); //是否包含value
遍历
names.forEach((k,v){ //forEach 遍历 print('遍历 $k , $v');});names.map((k,v){ //map方法放回一个新的数组 return MapEntry(v, k);});print('map: $names');
清空
//清空map names.clear(); print('names $names');
添加addall
Map<String,int> map11 = {'a':1,'b':2,'c':3}; Map<String,int> map12 = {'d':3,'e':5,'f':5,'c':10}; //addAll 整体合并另一个map,泛型要一致 key相同时value值后者覆盖前者.前者不存在就添加进来 map11.addAll(map12); print(map11); //addEntries 合并两个map,如果key有重复,并合并的map的value覆盖前者 map11.addEntries(map12.entries); print(map11); //putlfAbsent() 存在就获取值,不存在则添加到map,然后返回值 int result= map12.putIfAbsent('c', ()=>(100)); //存在 print(result); //10 int result2 = map12.putIfAbsent('t', ()=>1000); //不存在 print(result2); print(map12); //map中也会跟着添加进去
cast 泛型类型提升为其父祖类
//cast() 泛型类型提升为其父祖类 Map<String,int> map21 = {"a":1,"b":2,"c":3}; Map<Object,Object> map22 = map21.cast(); map22["d"]=33; // print(map22);//{a: 1, b: 2, c: 3, d: 33}