清空ArrayList还是只创建一个新列表,然后让旧列表被垃圾回收?
清空一个集合(在我的例子中是一个ArrayList)与创建一个新集合(并让垃圾收集器清除旧的集合)的优缺点是什么?
具体来说,我有一个ArrayList<Rectangle>
叫list
。当发生某种情况时,我需要清空list
并重新填充其他内容。我应该打电话list.clear()
还是只做一个新的ArrayList<Rectangle>
,让旧的被垃圾收集?每种方法的优缺点是什么?
回答:
您可以保留容器并clear
在想减少GC的负载时调用:clear()
清空数组内的所有引用,但不使数组符合垃圾回收器的回收条件。这可能会加快将来的插入速度,因为内部数组ArrayList
不需要增长。当您计划添加到容器中的数据与清除时的大小大致相同时,此方法特别有利。
另外,clear
当其他对象持有对您要清除的数组的引用时,您可能需要使用。
当新数据的大小可能与以前不同时,释放容器并创建一个新容器是有意义的。当然,通过clear()
与结合使用,您可以达到类似的效果
trimToSize()
。
以上是 清空ArrayList还是只创建一个新列表,然后让旧列表被垃圾回收? 的全部内容, 来源链接: utcz.com/qa/412668.html