【问题标题】:ArrayList of objects vs Arraylist of HashMaps对象的 ArrayList 与 HashMaps 的 Arraylist
【发布时间】:2014-11-22 03:56:59
【问题描述】:

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

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

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

【问题讨论】:

    标签: java json data-structures hashmap


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 2011-11-17
          • 2013-05-03
          • 2013-04-05
          • 1970-01-01
          • 1970-01-01
          • 2019-07-30
          • 2018-12-10
          • 2020-10-29
          • 1970-01-01
          相关资源
          最近更新 更多