【发布时间】:2014-06-27 15:23:11
【问题描述】:
大家早上好!我今天正在使用哈希映射进行编码,并且想知道在某种情况下的效率比较,我希望没有得到回答。假设我有一个数据文件,其中每一行都是一个条目,三列包含以下字段:块数、起始块、结束块。我使用哈希映射,其中键是三列数据字段。我基本上可以通过获取该条目的结束块,减去起始条目并添加一个来找出每个条目的块数。例如:
块数|起跑器 |结束块
2 1 2
哪个更有效:从哈希图中简单地省略块数字段,并通过 map.get("ending block") - map.get("starting block") + 1 (在此case 是 2-1+1),或者简单地将块数存储在映射 X 条目数中并通过 map.get("num of blocks"); 调用它;
对不起,如果这是一个愚蠢的问题,因为我在使用哈希映射方面只有一点经验。
【问题讨论】:
-
我不确定,但如果我是你,我会通过使用 System.nanoTime() 查找计算时间和使用 java 垃圾收集器查找内存使用情况来进行性能测试。不过,这并不能回答您的问题,抱歉!
-
@Aayush 实际上这是一个非常好的主意。我现在会这样做,但不幸的是我在工作。如果我没有得到答复,我肯定会尝试不同数量的条目。感谢您的建议!
-
你为什么要使用地图?为什么不用两个变量来保存开始和结束块??
-
@Bohemian 实际上,我将处理超过上述三列的大量数据,并且我必须重新组织输出数据,因此将值分配给键似乎是最有效的处理所述数据的方式。
标签: java performance hashmap