我有一个数组列表:
private ArrayList<PerfStatBean> statFilterResults;
我想像这样遍历它:
Iterator<PerfStatBean> statsIterator = statFilterResults.iterator();
while(statsIterator.hasNext()){
i++;
PerfStatBean perfBean = statsIterator.next();
.........
我想在while循环中运行以释放内存后,从statFilterResults中删除该bean。我相信如果我做类似的事情
perfBean = null;
它不会执行该操作,因为perfBean引用将为null,但该对象仍将在内存中。
有任何想法吗?
谢谢,
谭
最佳答案
这可能不是一个很好的优化。如果内存需求很大,那么您可能首先不想将它们全部存储在列表中-在创建对象时对其进行处理。
但是,从字面上看问题,ListIterator.set
是适合您的方法。
for (
ListIterator<PerfStatBean> iter = statFilterResults.listIterator();
iter.hasNext()
) {
++i;
PerfStatBean perfBean = iter.next();
iter.set(null);
...
}