【发布时间】:2014-09-05 14:57:56
【问题描述】:
我有一个代表身体轨迹的 csv 数据文件。格式为 t、x、y、x。我想将该粒子的历史存储在一种 HashMap 中,以便在给定时间轻松访问坐标,而无需每次都读取文件。我担心键和值是对象,而不是原始类型。那么,做这样的事情是个好主意吗?例如,我假设要填充 HashMap,必须全局定义 Doubles,以便为连续访问明确定义它们的地址......对吗?
【问题讨论】:
-
是的,你可以使用 Double 作为键...
-
您始终可以使用 Double 作为键。但是,可能存在精度问题。如果您的地图中有一个值为 0.00001 的键,并且您想知道键 0.000099 是否存在怎么办?
-
一般时间用long值表示。由于您有兴趣按时间查找坐标,因此您的键将是 Long,而不是 Double
-
您的问题需要更多细节(地图中有什么?)如果您使用 BigDecimal 而不是 double,您将不会遇到精度问题。 docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html
-
@tom 打扰一下,精度是个问题...谢谢!