课程 277 / 365
76%
数据结构与算法直觉·判断·13 分钟
正文已完成

四个问题判断该用列表还是映射

比较顺序、唯一键、重复项和更新方式,避免凭数据量大小机械选择结构。

L277

列表保留顺序和重复项,映射保留键值关系。再检查键是否稳定、更新怎样发生,就能覆盖大多数日常选择。

这一课的结果

能用四项检查判断一组业务数据应采用列表、映射还是双结构。

核心概念

先把关键判断说清楚

01

顺序是一种业务信息

待办优先级、时间线和步骤顺序都会影响结果,不能为了查找方便而无意丢掉。

02

键必须稳定且唯一

姓名、标题等字段可能重复或变化,不适合作为长期映射键;内部 ID 通常更可靠。

03

更新成本要看实际动作

频繁按 ID 局部更新偏向映射,频繁追加并整体展示偏向列表;不要只比较理论查找速度。

案例拆解

排班表为什么不能用姓名当键

团队用员工姓名作为排班映射键,遇到同名员工和姓名变更后覆盖了班次。

  1. 01

    确认排班页面需要按日期和班次顺序展示,因此保留列表。

  2. 02

    改用不可变员工 ID 作为人员映射键,姓名只作为可更新字段。

  3. 03

    在每条排班记录中保存员工 ID,并在渲染时从人员映射读取姓名。

案例结果

同名与改名不再破坏关联,页面顺序也保持清晰。

提交前练习

现在轮到你

审查一个现有数据集合,完成列表与映射的四项判断。

内容会自动保存在当前设备
查看参考答案与评分标准

参考答案

对象是商品收藏;顺序要求是按收藏时间倒序;唯一键是商品 ID;更新是经常按商品 ID 取消收藏;决定是列表保存顺序,Set 或映射判断是否已收藏,不能只用商品名作键。

评分标准

  • 四项判断都有业务证据
  • 候选键经过稳定性检查
  • 决定说明了被舍弃方案的缺口

本课收口 · 学习证据

完成,不等于随手打一个勾。

确认阅读、保存练习,再用 30 秒检查和一句话总结留下真实学习证据。

0 / 3
02完成本课练习0 / 4 项必填内容已填写
03通过理解检查约 30 秒
以下哪个字段最适合作为人员映射的长期键?
你现在更接近哪一种状态?
完成上面三项后,才能把本课记为已验证。

资料来源

继续核对与延伸阅读

本课内容最近更新于