
在上一篇中,我们学习了 List:
·用来存储一组数据
·常配合循环进行遍历
·是 Flutter 列表 UI 的基础
但很快你会发现一个问题:
List 只能存“值”, 却无法清晰地表达“这是什么数据”
例如:
['Tom', 18, true]这三个值分别代表什么?
·名字?
·年龄?
·是否登录?
仅靠 List,很难看懂。
这时,我们就需要 Map。
一、什么是 Map?
Map 可以理解为:
一组「键 - 值(key - value)」的数据
每一份数据都有:
·一个 key(名字)
·一个 value(值)
就像一张信息表:

Key | Value |
|---|---|
name | Tom |
age | 18 |
isVip | true |
Map user = {
'name': 'Tom',
'age': 18,
'isVip': true
};含义非常直观:
·name 对应名字
·age 对应年龄
·isVip 对应状态

2️⃣ 指定 key 和 value 类型(推荐)
Map<String, dynamic> user = {
'name': 'Tom',
'age': 18,
'isVip': true
};解释:
·key 是 String
·value 可以是任意类型(dynamic)
📌 这是 Flutter 项目中最常见的写法
三、访问 Map 中的数据
通过 key 来访问 value:
print(user['name']); // Tom
print(user['age']); // 18📌 注意:
·key 不存在时,返回 null
·Map 没有“索引”的概念
四、修改和操作 Map
user['age'] = 20;
2️⃣ 新增一条数据
user['city'] = 'Beijing';3️⃣ 删除数据
user.remove('isVip');五、为什么 Map 经常和 List 一起使用?
在真实业务中,常见的数据结构是:
List<Map>
例如:
·用户列表
·商品列表
·消息列表

List<Map<String, dynamic>> users = [
{
'name': 'Tom',
'age': 18,
},
{
'name': 'Lucy',
'age': 20,
}
];这里表示:
·一个用户列表(List)
·每个用户是一条 Map
六、遍历 List + Map(真实开发写法)
for (var user in users) {
print('姓名:${user['name']},年龄:${user['age']}');
}📌 你会发现:
·List 决定“有多少条数据”
·Map 决定“每条数据有什么字段”
七、Map 就是“简单数据模型”
在 Flutter 项目中,Map 通常用于:
·模拟接口返回的数据
·临时存储一条业务数据
·构建简单数据模型
例如:
Map product = {
'title': 'iPhone',
'price': 5999,
'inStock': true
};这已经非常接近真实项目中的数据结构了。
八、一个综合示例
List<Map<String, dynamic>> products = [
{'name': 'iPhone', 'price': 5999},
{'name': 'iPad', 'price': 3999},
];
for (var product in products) {
print('${product['name']} 的价格是 ¥${product['price']}');
}这个例子用到了:
·List
·Map
·循环
·字符串插值
九、Map 在 Flutter UI 中的意义
在 Flutter 中:
·页面展示的数据通常来自 Map
·接口返回的数据几乎都是 Map / JSON
·Map 是学习 Model 类 的前置知识
📌 后续你会学到:
如何把 Map 变成真正的 Dart 类
十、总结
本篇你已经学会了:
·什么是 Map
·Map 与 List 的区别
·List + Map 的组合使用
·使用 Map 描述一条完整数据
你已经完成了从:
“零散数据” → “结构化数据” 的重要跃迁

🔜 下一篇预告
《Flutter 零基础入门(七):函数(Function)与代码封装》
下一篇我们将学习:
·什么是函数
·如何封装重复逻辑
·函数的参数与返回值
·为后续 Widget 抽离逻辑做准备
从下一篇开始,你将真正学会:
写“可复用”的代码