2014-11-22 53 views
0

我有一个包含大约10,000个json转储的文件。每个JSON有大约20个领域,其中只有5个对我有用。我需要遍历该文件,解析每个json并存储相关元素以供进一步处理。对象的ArrayList与哈希映射的Arraylist

在Java中,什么是高效的数据结构来存储相关的json字段。我对对象的ArrayList(为此我将创建一个bean来容纳各个字段)和一个ArrayList of HashMaps(其中每个相关的json字段将作为键值对存储)之间感到困惑。

在内存使用和计算方面,哪两者更好?

回答

1

如果您有一组固定的字段,Object将小于HashMap。

HashMap必须将键存储为每个实例的字符串。访问对象中的字段也会更快。在对象中访问字段是单字节代码操作。访问HashMap需要为给定字段计算散列值,然后访问数组中的元素。

无论如何,性能可能不是这个特定问题的主导因素,使用对象可能会更具可读性。

2

这取决于你的用例。如果你打算全部使用5个字段。就像把它放在数据库中一样,或者在UI中显示,然后是第一种方法(bean数组)。如果你打算有选择地使用这些字段(这里有1个字段和5个字段中的另外5个字段),那么sceond方法更好(散列图阵列)。

2

豆列表具有更好的类型安全性和可读性。直到你能证明这种方法存在问题为止。