1

私は自分のアプリでタブシステムを作成しようとしています。これにより、ユーザーは各タブに表示されるコンテンツをフィルタリングできます(つまり、ユーザーは非表示にするアイテムを選択できます)。すべてのアイテムは配列で利用できます:ArrayList<ItemInfo> mItems。私のTabInfoクラスでは、次のようなものが欲しいです。

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

content配列はmItemsフィルターされたばかりです。これに伴う問題は、多くの'のコピーを保持する必要がありItemInfo、多くのメモリを浪費し(タブ間でアイテムが重複する可能性があります)、すべてがに含まれていることmItemsです。

重複を保持せずにフィルターmItemsをかける方法はありますか?TabInfo

4

1 に答える 1

3

content配列にのコピーを含めるために何かをしているのでない限りItemInfo、それらは含まれません。ArrayListsは、オブジェクトを直接格納するのではなく、オブジェクトへの参照を格納します。

同じオブジェクトを複数のに挿入するとArrayList、オブジェクトはコピーされず、複数の参照が保存されます。

したがって、何もする必要はありません。(または、オブジェクトを保存する前にオブジェクトをコピー/複製する場合は、それを停止する必要があります。)

于 2012-05-13T10:01:12.710 に答える