【问题标题】:Java Multiple Arrays Sharing Same Content of ParentJava 多个数组共享父级的相同内容
【发布时间】:2012-05-13 09:48:18
【问题描述】:

我正在尝试在我的应用程序中创建一个选项卡系统,允许用户过滤每个选项卡中显示的内容(即用户选择要隐藏的项目)。所有项目都在一个数组中可用:ArrayList<ItemInfo> mItems。在我的TabInfo 课程中,我想要这样的东西:

public class TabInfo {
    public int numItems;
    public ArrayList<ItemInfo> content;
}

content 数组刚刚过滤掉了 mItems。这样做的问题是我必须保留许多ItemInfo 的副本,这会浪费大量内存(选项卡之间可能有重复的项目)并且它们都只包含在mItems 中。

有没有办法在TabInfo 中过滤mItems 而不会保留重复项?

【问题讨论】:

    标签: java arrays memory


    【解决方案1】:

    除非您正在做某事使content 数组包含您的ItemInfos 的副本,否则它们不会。 ArrayLists 存储对对象的引用,而不是直接存储对象。

    当您将同一个对象插入多个ArrayLists 时,不会复制该对象,而是存储多个引用。

    所以你不必做任何事情。 (或者,如果您在存储对象之前复制/克隆对象,则需要停止这样做。)

    【讨论】:

    • 啊,所以我可以content.add(mItems.get(i))。谢谢!
    猜你喜欢
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    • 2017-08-25
    相关资源
    最近更新 更多