我使用Hashmap和2D数组来读取Excel。
Hashmap - 所有数据将转换为字符串并使用唯一的字符串键 rowno+colno 保存 示例:键 11 - Row1、column1 的数据
二维数组 - 所有数据将转换为字符串并存储。 arr[00] ="第1行第1列数据"
一旦被存储。我需要在知道索引的情况下多次使用这些数据。
比如说..如果我想获取第一行第三列的数据,我将使用下面的。
HAsmap - 字符串值 = Hm.get("13")
2Darray - 字符串值 = arr[02]
在这种情况下哪个更快。我需要存储大量数据。
最佳答案
二维数组访问数据速度更快,但也需要考虑空间占用。
如果您需要存储所有单元格,二维数组也更快,但如果您只需要存储少数单元格,则必须使用所谓的稀疏矩阵,在本例中为就空间使用而言,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 频繁发生,那么应用程序的整体速度可能会严重减慢,并且使用很少记录的非常大的二维矩阵可以做到这一点。
关于Java Hashmap 和已知索引的二维数组性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39143104/