我使用Hashmap和2D数组来读取excel。
Hashmap - 所有数据都将转换为字符串,并使用唯一的字符串键rowno + colno保存 示例:键11 - Row1,column1的数据
2D数组 - 所有数据都将转换为字符串并存储。 arr [00] =“Row1,column1的数据”
一旦存储完毕。我需要多次使用这些数据,我知道索引。
说ex ..如果我想获得第1行第3列的数据,我将使用下面的内容。
HAsmap - 字符串值= Hm.get(“13”)
2Darray - String value = arr [02]
在这种情况下哪一个更快。我需要存储大量数据。
答案 0 :(得分:2)
二维数组访问数据的速度更快,但您还需要考虑占用空间。
如果你需要存储所有单元格,那么二维数组也会更快,但是如果你只需要存储很少的单元格,你就必须使用名为sparsed matrix的东西,在这种情况下就使用的空间而言,Map是最佳解决方案,性能相似,因此使用更少的内存更好(GC更少)。
基本上可以使用以下矩阵
bi dimensional array | Map
Space | Speed | Space | Speed
-------------------------------------------
| | |
Store all data Best | Best | Good | Good
Store few Very bad | Very good*| Very good | Good
*)考虑到如果GC频繁发生并且使用非常大的双维矩阵,那么应用程序的整体速度可能会大大降低,其中使用的记录很少。