什么是映射(Map)?
什么是映射(Map)?
在编程中,映射(Map) 是一种键值对(Key-Value Pair) 集合,用于存储无序的关联数据。它通过唯一的键(Key)快速访问对应的值(Value),类似于现实中的“字典”或“电话簿”:通过一个关键词(键)直接找到对应的信息(值)。
核心概念
键(
必须是唯一的,不能重复。
可以是任何对象(如字符串、数字、自定义类实例等),但需正确实现 == 和 hashCode 方法(在 Dart 中)。
用于快速定位值。
值(Value)
可以是任意类型(包括对象、函数、嵌套映射等)。
允许重复(多个键可以对应相同的值)。
无序性
映射中的键值对没有固定顺序,遍历时顺序可能不同。
类比理解
电话簿
键:姓名(如 "Alice")。
值:电话号码(如 "123-456-7890")。
通过姓名快速查找电话号码。
学生成绩表
键:学号(如 "S001")。
值:分数(如 95)。
通过学号快速获取成绩。
为什么需要映射?
快速查找
通过键直接访问值,时间复杂度接近 O(1)(哈希表实现)。
关联数据
将逻辑上相关的数据绑定在一起(如用户 ID 和用户信息)。
动态扩展
运行时可以动态添加、修改或删除键值对。
映射 vs 其他数据结构
数据结构特点适用场景
映射(Map)键值对存储,键唯一,值可重复,无序,快速查找。需要通过唯一标识快速访问数据的场景。
列表(List)有序集合,通过索引访问,元素可重复。需要顺序访问或操作数据的场景。
集合(Set)无序且唯一,不存储重复值。需要去重或快速判断元素是否存在的场景。