在Dart和Flutter中,Map是一种非常有用的数据结构,它提供了快速的查找和访问功能。在本篇技术入门博客中,我们将深入了解Flutter中的Map,包括如何创建、操作和遍历Map。
什么是Map?
Map是一种键值对的集合,其中每个键都是唯一的。可以将Map看作是字典,其中键是单词,值是单词的定义。在Flutter中,可以使用Map存储和检索各种数据,例如配置信息、用户数据等。
创建Map
在Dart中,可以使用字面量语法或构造函数来创建Map。以下是两种创建Map的常见方法:
使用字面量语法:
Map<String, dynamic> map = {
'key1': value1,
'key2': value2,
// 添加更多键值对...
};
使用构造函数:
Map<String, dynamic> map = Map();
map['key1'] = value1;
map['key2'] = value2;
// 添加更多键值对...
基本属性
| 名称 | 说明 |
|---|---|
| isEmpty | 是否为空 |
| isNotEmpty | 是否不为空 |
| keys | key 集合 |
| values | values 集合 |
| length | 个数 |
| entries | 加工数据入口 |
var a = {'key1': 'value1', 'key2': 'value2'};
print(a.isEmpty); // false
print(a.isNotEmpty); // true
print(a.keys); // (key1, key2)
print(a.values); // (value1, value2)
print(a.length); // 2
print(a.entries); //(MapEntry(key1: value1), MapEntry(key2: value2))
常用方法
| 名称 | 说明 |
|---|---|
| addAll | 添加 |
| addEntries | 从入口添加 |
| containsKey | 按 key 查询 |
| containsValue | 按 value 查询 |
| clear | 清空 |
| remove | 删除某个 |
| removeWhere | 按条件删除 |
| update | 更新某个 |
| updateAll | 按条件更新 |
addAll
新增 kv 数据
map.addAll({'first': 'java', 'second': 'python'});
addEntries
接入另一个 map 集合
map.addEntries(a.entries);
containsKey
检查 key 是否存在
print(a.containsKey('name'));
containsValue
检查 value 是否存在
print(a.containsValue('www.ducafecat.tech'));
clear
清空数据
map.clear();
remove
删除数据
map.remove('name');
removeWhere
按条件删除
map.removeWhere((key,val) => key == 'name');
update
更新数据
map.update('name', (val) => 'abc');
updateAl
更新批量
map.updateAll((key, val) => "---$val---");
遍历
在Flutter中,你可以使用forEach方法或for-in循环来遍历Map中的键值对。
使用forEach方法:
map.forEach((key, value) {
// 处理键值对
print('$key: $value');
});
使用for-in循环:
dartCopy code
for (var entry in map.entries) {
var key = entry.key;
var value = entry.value;
// 处理键值对
print('$key: $value');
}
总结
在本篇博客中,我们学习了如何在Flutter中使用Map。我们了解了Map的基本概念,学习了创建Map、操作Map以及遍历Map的方法。Map是Flutter中常用的数据结构之一,对于存储和管理键值对数据非常有用。