购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

陷阱13

无法挽回
——在映射中放入重复键丢失数据

映射是指存储具有键-值映射关系的集合对象,在映射中每个键对应一个值,通过相应的键可以找到与其对应的值。例如,要通过编号查看商场中的各类商品,就可以通过映射关系图来实现,编号与商品的映射关系如图3.6 所示。

图3.6 编号与商品的映射关系

在如图3.6 所示商场中编号与商品的映射关系图中,可以看出每个键名对应一类商品,例如,键名01对应的键值是编程词典,说明编号01对应的商品类别就是编程词典,同理编号02对应的商品类别就是家用电器,等等,每个键名对应唯一的一个键值,并且没有重复的键名,这样,通过键名就可以找到与之对应的键值。

注 意

如果试图在映射关系中放入重复键,则与之重复的键对应的映射关系就会被新的重名键所替代,从而导致原有的键-值映射关系丢失,如在图3.6 所示的映射关系中,如果再加入一个键名01以及与其对应的键值“其他商品”,则原有的键-值对“01——编程词典”就会从映射关系中删除。

示例:

说 明

执行本示例的代码,程序将输出“其他商品”,这是由于在map映射中添加了两个键是01 的映射,所以 标记处添加的“01——其他商品”的键-值映射将替换 标记处添加的“01——编程词典”的键-值映射,因此在 标记处获得键01的值是“其他商品”,而不是“编程词典”。

这个示例给我们一个启示,那就是在使用具有映射关系的集合时,一定要注意新添加的键在原映射中是否有同名的键,如果有同名的键就应该更改新添加的键名,否则就会出现原有的键值关系丢失,如果丢失的数据比较重要,可能就会造成严重的损失。 d/Qb+JUsPYHCuFdD26LjfginBpoWvoJ0d/cza9OQi/7y6bkA7XcgKnsfwCLtdnCf

点击中间区域
呼出菜单
上一章
目录
下一章
×