【问题标题】:Why is it bad to create an ArrayList of all the objects of a class as a class variable?为什么创建一个类的所有对象的 ArrayList 作为类变量是不好的?
【发布时间】:2017-10-03 10:05:56
【问题描述】:

所以我对为什么会出现这种情况的唯一想法是,创建的该类的每个对象都带有一个相同的数组列表,所以这是对内存的不良使用?

【问题讨论】:

  • “一个类的所有对象”是什么意思?你能发布一个例子吗?
  • 另外,静态字段只占用一次内存——它们不会为类的每个对象重复。因此,该列表将只有一份副本。
  • @FrançoisLEPORCQ 例如,如果我有一个 Dog 类并用它来制作单独的狗对象。抱歉,我回家后会尝试发布一个示例
  • 您想将此对象列表保存在内存中吗?您可以在列表中使用静态修饰符来做到这一点,对我来说绝对不是一个坏习惯。

标签: java arraylist


【解决方案1】:

我同意你的推理。如果您只有几个类的实例,这还不错,但是随着您创建的越来越多,arrayList 元素的总数呈指数增长。另外,向 arrayList 添加更多元素非常昂贵(因为实现涉及创建具有更多元素的全新数组)。所以想象一下向 100 个 arrayLists 添加 1 个元素会有多慢,每个 arrayLists 有 100 个元素。这效率很低,我宁愿将特定类的所有实例的arrayList作为类外部的变量,然后将arrayList作为参数传入。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    相关资源
    最近更新 更多