如何在Java中使用双精度作为键

时间:2014-09-05 14:57:56

标签: java hashmap key double

我有一个表示身体轨迹的csv数据文件。格式为t,x,y,x。我想将该粒子的历史存储在一种HashMap中,以便在给定时间轻松访问坐标,而无需每次都读取该文件。我担心的是键和值是对象,而不是基元类型。那么,做这样的事情是个好主意吗?例如,我认为要填充HashMap,必须全局定义双打,以便为连续访问定义其地址......对吗?

1 个答案:

答案 0 :(得分:0)

IdentityHashMap等身份地图外,地图使用equals()方法检查密钥相等性。

因此,只要equals()方法的语义定义为“相等”,就可以使用不同的实例(只要hashcode方法与equals方法一致,就可以使用哈希映射{1}})..并且双重尊重这两个要求,因此Double没问题。

但是,双精度值会导致精度损失,所以如果你使用通过某种计算得到的双精度数,它们的小数可能不同(如8.999999和9,只是为了让你理解),这可以使地图不能正常工作。