我正在编写一个Android应用程序,其中包含一些小型链接列表的链接列表(每个可能有3个,每个1000个对象)。
我想选择一个内存管理策略,因为我经常需要删除和重建它们(因为数据是相互依赖的,它比修改状态更容易。)
我不知道我是否可以依赖DDMS工具,这些工具只适用于调试模式,适用于如此小的列表。
当删除其中一个时,我想知道通常的做法是清除它(希望GC清除子列表)或者我是否必须自己访问整个结构。
换句话说,我应该
LinkedList<LinkedList<MyObject>> theList = getTheList();
void free(){
theList.clear();
}
或
void free(){
LinkedList<MyObject> subList;
for(subList:theList) subList.clear();
theList.clear();
}
?
答案 0 :(得分:1)
一旦未引用List元素,垃圾收集器将自动清除它们。你的第一个提案就足够了。
答案 1 :(得分:0)
这不是c ++。在java中很常见,如果你没有任何其他引用,GC将删除这些对象,并且将来不会使用它们。我会保持简单明了。
换句话说,如果你想加速你的程序,在重新创建这个结构时使用较少的new
运算符,我建议使用对象池并重用创建的对象。