调用list的clear方法和new一个新的list相比,谁的性能更好

List list = new ArrayList();
list里有若干元素

我现在想拿到一个空的list,是用list.clear()好,还是直接 list = new ArrayList();好。场景是在for循环里。
PS. clear的实现其实也是遍历list内数组将各个元素赋值null,让gc去回收每个元素。

尽量不要去重复创建对象在循环里,因为创建一个list需要分配内存并且需要分配一个默认大小集合这些都需要很大的开销,而清除与它比起来差别还是挺大的,你也可以自己测试下

从效率上来说差别不大,一般不用考虑。这两种方法最大的差别是,clear()后当前的变量和所有引用到这个list的变量都指向同一个空的list,而如果你new了一个list后再赋值,则当前的变量变为一个空list,而其他以前引用到初始list的则不受影响,还是之前存有数据的list。

clear比较好。不然堆上面都是这些类了。