Flutter基础语法(二)字典Map

Flutter基础

第二章 Flutter字典Map的使用



前言

在使用flutter开发已经有一段时间了,在之前都是快速开发,没有时间去复盘自己的知识体系,现在就从flutter的基本语法开始,一步步分析flutter涉及到的细节问题,希望对你有所帮助。


一、字典是什么?

  • 字典(map)是一种特殊的数据结构:一种元素对(pair)的无序集合,pair 的一个元素是 key,对应的另一个元素是 value,所以这个结构也称为关联数组或字典。这是一种快速寻找值的理想结构:给定 key,对应的 value 可以迅速定位。

二、字典的定义

1.直接赋值

dart使用var关键字声明参数,会自动推断类型。
字典对应的key和value可以设置不同的类型。

var map = {'ziDian': '字典', 'shuZhu': '数组'};
Map<String, int> map1 = {'key1': 111, 'key2': 123};
print("打印==$map");//打印=={ziDian: 字典, shuZhu: 数组}
print("打印==$map1");//打印=={key1: 111, key2: 123}

2.先声明后添加

Map map = {};
map['key1'] = 66;
map['key2'] = 88;
print('打印==$map');//打印=={key1: 66, key2: 88}

3.of创建方法

Map map = {};
map['key1'] = 66;
map['key2'] = 88;
print('打印map1==$map'); //打印=={key1: 66, key2: 88}
var map1 = Map.of(map);
print('打印map1==$map1'); //打印map1=={key1: 66, key2: 88}

4.fromEntries创建方法

Map map = {};
map['key1'] = 66;
map['key2'] = 88;
print('打印map1==$map'); //打印=={key1: 66, key2: 88}
var map1 = Map.fromEntries(map.entries);
print('打印map1==$map1'); //打印map1=={key1: 66, key2: 88}

5.identity创建方法

使用默认实现LinkedHashMap创建一个严格的Map

var map1 = Map.identity();
map1['ziDian'] = '字典';
print('打印==$map1'); //打印=={ziDian: 字典}

6.unmodifiable创建方法

创建一个不可修改、基于哈希值的Map,包含other所有的项

var map = {'ziDian': '字典', 'shuZhu': '数组'};
var map1 = Map.unmodifiable(map);
print("打印==$map1"); //打印=={ziDian: 字典, shuZhu: 数组}

7.fromIterables创建方法

将指定的keys和values关联,创建一个Map实例

List<String> keys = ['ziDian', 'shuZhu'];
List<String> values = ['字典', '数组'];
var map = Map.fromIterables(keys, values);
print("打印==$map"); //打印=={ziDian: 字典, shuZhu: 数组}

三、字典的常用属性

1.字典长度

var map = {'ziDian': '字典', 'shuZhu': '数组'};
print('打印==${map.length}'); //打印==2

2.是否为空

.isEmpty为空true 不为空false

var map = {'ziDian': '字典', 'shuZhu': '数组'};
print("是否为空==${map.isEmpty}");//是否为空==false

var map1 = {};
print("是否为空==${map1.isEmpty}");//是否为空==true

3.是否不为空

.isNotEmpty 为空false 不为空true

var map = {'ziDian': '字典', 'shuZhu': '数组'};
print("是否不为空==${map.isNotEmpty}");//是否不为空==true

var map1 = {};
print("是否不为空==${map1.isNotEmpty}");//是否不为空==false

4.哈希值

var map = {'ziDian': '字典', 'shuZhu': '数组'};
print("打印==${map.hashCode}"); //打印==986719720

5.运行时类型

var map = {'ziDian': '字典', 'shuZhu': '数组'};
print("打印==${map.runtimeType}"); //打印==_InternalLinkedHashMap<String, String>

6.toList

返回所有的keys或返回所有的values

var map = {'ziDian': '字典', 'shuZhu': '数组'};
print("打印==${map.keys.toList()}"); //打印==[ziDian, shuZhu]
print("打印==${map.values.toList()}");//打印==[字典, 数组]

7.根据key取值

var map = {'ziDian': '字典', 'shuZhu': '数组'};
print("打印==${map['ziDian']}"); //打印==字典

8.根据key赋值

var map = {'ziDian': '字典', 'shuZhu': '数组'};
map['ziDian'] = '小明';
print("打印==$map"); //打印=={ziDian: 小明, shuZhu: 数组}

四、字典(map)方法

1.添加元素

添加元素(如果key已存在,则是更新value)

var map = {'ziDian': '字典', 'shuZhu': '数组'};
map['ziFu'] = '字符';
map['ziDian'] = '其他';
print('打印==$map'); //打印=={ziDian: 其他, shuZhu: 数组, ziFu: 字符}

var map = {'ziDian': '字典', 'shuZhu': '数组'};
map['string'] = '字符串';
map.addAll({'int': '整型'});
print("打印==$map"); //打印=={ziDian: 字典, shuZhu: 数组, string: 字符串, int: 整型}

2.putIfAbsent方法

添加(如果key不存在,则添加,否则,不添加)

var map = {'ziDian': '字典', 'shuZhu': '数组'};
map.putIfAbsent('ziDian', () => '其他');
print('打印==$map'); //打印=={ziDian: 字典, shuZhu: 数组}

3.是否包含指定的key

var map = {'ziDian': '字典', 'shuZhu': '数组'};
print("打印==${map.containsKey('ziDian')}"); //打印==true

4.是否包含指定的value

var map = {'ziDian': '字典', 'shuZhu': '数组'};
print("打印==${map.containsValue('字典')}"); //打印==true

5.遍历

var map = {'ziDian': '字典', 'shuZhu': '数组'};
map.forEach((key, value) {
   print('key = $key, value = $value');
});
//key = ziDian, value = 字典
//key = shuZhu, value = 数组

6.toString()转成字符串

var map = {'ziDian': '字典', 'shuZhu': '数组'};
print("打印==${map.toString()}"); //打印=={ziDian: 字典, shuZhu: 数组}

7.remove()方法

删除键值对, 返回删除key对应的value值, 没有则返回null

var map = {'ziDian': '字典', 'shuZhu': '数组'};
print("打印==${map.remove('ziDian')}"); //打印==字典
print("打印==${map.remove('code')}"); //打印==null

8.clear()方法

删除所有的键值对

var map = {'ziDian': '字典', 'shuZhu': '数组'};
print("打印==${map.clear()}"); //打印=={}

总结

以上就是今天要讲的内容,本文仅仅简单介绍了字典的使用,而字典(map)提供了大量能使我们快速便捷地处理数据的函数和方法。希望文章对你有所帮助,后续继续完善。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明似水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值