Flutter基础
第二章 Flutter字典Map的使用
文章目录
- Flutter基础
- 前言
- 一、字典是什么?
- 二、字典的定义
- 1.直接赋值
- 2.先声明后添加
- 3.of创建方法
- 4.fromEntries创建方法
- 5.identity创建方法
- 6.unmodifiable创建方法
- 7.fromIterables创建方法
- 三、字典的常用属性
- 1.字典长度
- 2.是否为空
- 3.是否不为空
- 4.哈希值
- 5.运行时类型
- 6.toList
- 7.根据key取值
- 8.根据key赋值
- 四、字典(map)方法
- 1.添加元素
- 2.putIfAbsent方法
- 3.是否包含指定的key
- 4.是否包含指定的value
- 5.遍历
- 6.toString()转成字符串
- 7.remove()方法
- 8.clear()方法
- 总结
前言
在使用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}");//是否为空==falsevar map1 = {};
print("是否为空==${map1.isEmpty}");//是否为空==true
3.是否不为空
.isNotEmpty 为空false 不为空true
var map = {'ziDian': '字典', 'shuZhu': '数组'};
print("是否不为空==${map.isNotEmpty}");//是否不为空==truevar 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)提供了大量能使我们快速便捷地处理数据的函数和方法。希望文章对你有所帮助,后续继续完善。