对象的ArrayList与HashMaps的Arraylist

时间:2014-11-22 03:56:59

标签: java json data-structures hashmap

我有一个包含大约10,000个json转储的文件。每个json都有大约20个字段,其中只有5个字段对我有用。我需要迭代文件,解析每个json并存储相关元素以供进一步处理。

在Java中,存储相关json字段的高效数据结构。我在对象的ArrayList(我将创建一个用于保存各个字段的bean)和一个HashMaps的ArrayList(其中每个相关的json字段将存储为键值对)之间感到困惑。

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

3 个答案:

答案 0 :(得分:2)

这取决于您的使用案例。如果你打算按原样使用所有5个字段。就像把它放在数据库中,或者在UI中显示一样,然后是第一种方法(bean数组)。如果你打算有选择地使用这些字段,(这里有5个字段,另外5个字段)那么sceond方法更好(哈希映射数组)。

答案 1 :(得分:2)

豆类清单具有更好的类型安全性和可读性。使用它直到您可以证明该方法存在问题。

答案 2 :(得分:1)

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

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

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