删除 android 中链表的链表

deleting a linked list of linked lists in android

我正在编写一个 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();
}

一旦没有引用列表元素,它们将被垃圾收集器自动清理。你的第一个提议就足够了。

这不是 C++。在 java 中很常见,如果您没有任何其他对它们的引用并且将来不会使用它们,GC 将删除这些对象。我会保持简单明了。

换句话说,如果你想加速你的程序,通过在重新创建这个结构时使用 less new 运算符,我建议使用对象池并重用创建的对象。