我有一个表示身体轨迹的csv数据文件。格式为t,x,y,x。我想将该粒子的历史存储在一种HashMap中,以便在给定时间轻松访问坐标,而无需每次都读取该文件。我担心的是键和值是对象,而不是基元类型。那么,做这样的事情是个好主意吗?例如,我认为要填充HashMap,必须全局定义双打,以便为连续访问定义其地址......对吗?
答案 0 :(得分:0)
除IdentityHashMap
等身份地图外,地图使用equals()
方法检查密钥相等性。
因此,只要equals()
方法的语义定义为“相等”,就可以使用不同的实例(只要hashcode
方法与equals
方法一致,就可以使用哈希映射{1}})..并且双重尊重这两个要求,因此Double
没问题。
但是,双精度值会导致精度损失,所以如果你使用通过某种计算得到的双精度数,它们的小数可能不同(如8.999999和9,只是为了让你理解),这可以使地图不能正常工作。