阅读约 20 分钟 · 另留动手时间
可以先在页面里动手
只是想按长度排序,TreeMap 为什么把不同名字合成了一条?
用 aa、bb、zz 对照写入、查询与删除:比较器的零值同时决定排序键身份,再用 BigDecimal 检查另一种相等规则。
适合排查:只是想按长度排序,TreeMap 为什么把不同名字合成了一条?
开始前:能读 Map 的 put、get 与 remove 调用
- Java 17
- TreeMap
- Comparator
- 键的身份
- 可运行实验
往期新增 / 2026.10.24 / 6 篇
从一个能手算的例子开始,先猜结果,再操作实验,最后运行同一份源码。本轮沿用后端、AI 与计算机基础三条路线,附原始资料、阅读准备和独立练习。
先看本文的问题是否与你有关,再读正文、运行示例、记录自己的结果。阅读分钟数不包含环境准备和实验时间;示例验证范围在运行说明及下载包内标明。
认识 Java Map、byte 数组和 ByteBuffer;运行需完整 JDK 17 或更新版本。
这一组留下什么:分别核对键的比较规则与解压器尚未消费的字节。
用 aa、bb、zz 对照写入、查询与删除:比较器的零值同时决定排序键身份,再用 BigDecimal 检查另一种相等规则。
把一个 zlib 数据段与下一段文字放在同一缓冲区,核对 finished、needsInput 与剩余字节,避免把“这段完成”误当成“整块消耗完”。
这是一条建议顺序;遇到当前项目的问题,也可以直接选择下面对应的文章。每篇的前置阅读另有说明。
阅读约 20 分钟 · 另留动手时间
可以先在页面里动手
用 aa、bb、zz 对照写入、查询与删除:比较器的零值同时决定排序键身份,再用 BigDecimal 检查另一种相等规则。
适合排查:只是想按长度排序,TreeMap 为什么把不同名字合成了一条?
开始前:能读 Map 的 put、get 与 remove 调用
阅读约 23 分钟 · 另留动手时间
可以先在页面里动手
把一个 zlib 数据段与下一段文字放在同一缓冲区,核对 finished、needsInput 与剩余字节,避免把“这段完成”误当成“整块消耗完”。
适合排查:Inflater 已经解压完成,输入末尾为什么还留着 NEXT?
开始前:知道压缩数据与解压后的内容是两组字节
会算平均、平方和导数;可先看各篇提供的基础阅读。
这一组留下什么:分清残差导数、参数梯度、输入方差与标签信息。
把对误差的导数与对参数的梯度分开;用一条线性公式和两条样本,比较三个看似相同的裁剪位置。
四个点就能区分“保留变化量”与“保留任务信息”;核对投影碰撞、重建误差,以及输入尺度改变后的主方向。
这是一条建议顺序;遇到当前项目的问题,也可以直接选择下面对应的文章。每篇的前置阅读另有说明。
阅读约 20 分钟 · 另留动手时间
可以先在页面里动手
把对误差的导数与对参数的梯度分开;用一条线性公式和两条样本,比较三个看似相同的裁剪位置。
适合排查:Huber 已经限制了梯度,为什么一个大输入仍能把更新放大?
开始前:知道预测误差等于预测减真实值
阅读约 22 分钟 · 另留动手时间
可以先在页面里动手
四个点就能区分“保留变化量”与“保留任务信息”;核对投影碰撞、重建误差,以及输入尺度改变后的主方向。
适合排查:PCA 保留了 99% 的方差,为什么分类线索还是全丢了?
开始前:知道坐标点和平方平均值
能读 Python 循环、下标和列表;先手算小输入。
这一组留下什么:用逐步状态解释结果,再用独立参考实现核对。
aaba 从不同地方读,可以得到 aaba、abaa、baaa、aaab。用 Booth 算法找统一写法,再亲手重现作者勘误中的提前停止反例。
先给每个合数指定唯一的“最小质因子负责人”,再看线性筛的 break 为什么必须发生在标记之后。
这是一条建议顺序;遇到当前项目的问题,也可以直接选择下面对应的文章。每篇的前置阅读另有说明。
阅读约 30 分钟 · 另留动手时间
可以先在页面里动手
aaba 从不同地方读,可以得到 aaba、abaa、baaa、aaab。用 Booth 算法找统一写法,再亲手重现作者勘误中的提前停止反例。
适合排查:一串字绕成圆,怎样选同一个开头?提前停下为什么会选错
开始前:会用字符串下标、切片和 while 循环;能按第一个不同字符比较两个字符串。
阅读约 28 分钟 · 另留动手时间
可以先在页面里动手
先给每个合数指定唯一的“最小质因子负责人”,再看线性筛的 break 为什么必须发生在标记之后。
适合排查:12 能被 2 和 3 划掉,怎样让每个合数只被处理一次?
开始前:认识整除、余数与数组下标;知道质数只有 1 和自身两个正因数。