本章进度 3 / 18
17%
数据结构与算法直觉·练习·18 分钟
正文已完成

为课程进度设计列表与映射模型

把真实需求落成一份含顺序、索引、更新规则和异常处理的数据模型。

L278
为什么现在学

现在把“列表与映射”用于一次具体操作,检查你能否独立做出并修正结果。

本课会用什么
  • 按本课练习说明准备真实材料
  • 保留练习与复盘记录

可用的数据模型需要定义列表保存什么、映射的键和值是什么、二者如何同步,以及缺失或重复数据怎样处理。一句“用 Map”还不足以指导实现。

这一课的结果

能为同时需要有序展示与按 ID 更新的场景交付一份可实现的数据结构方案。

核心概念

先把关键判断说清楚

01

单一事实来源

同一字段不要在多个结构里独立维护;否则一次更新可能留下互相矛盾的值。

02

索引可以重建

列表是事实集合时,按 ID 的映射可以由列表生成;可重建索引不应被当成第二份业务事实。

03

异常规则属于模型

重复 ID、未知 ID 和删除后的引用必须在方案里明确,而不是留给实现者临场猜测。

案例拆解

365 节课程的本地进度模型

课程目录按固定顺序展示,但浏览器进度会凭课程 ID 单独写入并读取。

  1. 01

    课程蓝图用有序列表保存 ID、标题和篇章顺序。

  2. 02

    进度用课程 ID 到状态记录的映射保存,不复制课程标题。

  3. 03

    渲染时遍历课程列表并读取映射;未知进度 ID 被隔离并记录,而不是插入目录。

案例结果

课程结构保持稳定,进度可独立更新,旧数据也不会改变目录事实。

提交前练习

现在轮到你

设计一个同时支持顺序浏览和按 ID 更新的数据模型。

完成本课需要:完成以下内容用于本课收口。

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

参考答案

项目列表保存项目 ID 的显示顺序;项目详情映射以 ID 为键保存唯一对象;排序只改 ID 列表,详情更新只改映射;重复 ID 拒绝写入,未知 ID 显示缺失占位并记录。

评分标准

  • 列表和映射职责不重叠
  • 同步规则覆盖增删改
  • 异常输入有显式处理

本课收口 · 学习证据

留下完整学习证据

读完内容、完成练习、通过理解检查并留下 12 字以上总结,才记为已验证。

0 / 4
02完成本课必填练习0 / 4 项必填内容已填写03通过理解检查点此去回答,约 30 秒
04写下 12 字以上总结还差 12 字
列表与映射并存时,哪种做法最能避免状态冲突?
你现在更接近哪一种状态?
尚有必填项未完成,请补齐后再继续。

资料来源

继续核对与延伸阅读

本课内容最近更新于 。