共享父内容相同内容的Java多个数组

时间:2012-05-13 09:48:19

标签: java arrays memory

我正在尝试在我的应用程序中创建一个标签系统,允许用户过滤每个标签中显示的内容(即用户选择要隐藏的项目)。所有项目都以数组形式提供:ArrayList<ItemInfo> mItems。在我的TabInfo课程中,我希望有这样的内容:

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

content数组仅mItems已过滤掉。这个问题是我必须保留许多ItemInfo的副本,它会浪费大量内存(选项卡之间可能存在重复的项目)并且它们都包含在{{1 }}。

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

1 个答案:

答案 0 :(得分:3)

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

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

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