我正在使用一个大的ArrayList进入Java递归。在一个递归步骤中,我将该列表分成两个大小各半的列表,并对这两个列表应用相同的方法进行递归。然而,由于在分裂之后不再需要这个大列表,我想要将它从内存中删除。在这里搜索了一段时间后,我得到了以下解决方案:
public some_object recursiveMethod(ArrayList large_List) {
//Compute the two sublists
ArrayList lower_half = lowerHalf(large_List);
ArrayList upper_half = upperHalf(large_List);
//Delete large list from memory
large_List = null;
//Recursively call on smaller lists
return procedure(recursiveMethod(lower_half),recursiveMethod(upper_half));
}
这会起作用吗,也就是说,GC会删除大的列表吗?