Dart基础语法-Map

228 阅读2分钟

在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是否不为空
keyskey 集合
valuesvalues 集合
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中常用的数据结构之一,对于存储和管理键值对数据非常有用。