2012-05-13 10 views
1

私は、ユーザーが各タブに表示されるコンテンツをフィルタできるようにする(つまり、ユーザーが非表示にする項目を選択する)タブシステムをアプリケーション内に作成しようとしています。すべての項目は配列ArrayList<ItemInfo> mItemsで利用できます。ただmItemsがダウンフィルタ親の同じコンテンツを共有するJavaの複数の配列

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

content配列:私のTabInfoクラスでは、私はこのような何かを持っていると思います。この問題は、ItemInfoの多くのコピーを保持しなければならないことと、多くのメモリを消費することになります(タブ間に重複したアイテムが存在する可能性があります)、それだけがmItemsに含まれていることになります。

TabInfoにフィルタリングされたmItemsが含まれていない方法がありますか?

答えて

3

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

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

だから何もする必要はありません。 (または、オブジェクトを保存する前にオブジェクトをコピー/クローンしている場合は、その作業をやめる必要があります)。

+0

ああ、私は 'content.add(mItems.get(i))'にすることができます。ありがとう! – nebkat

+0

はい、できます。 – Mat

関連する問題