0 0

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

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

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

3个答案 按时间排序 按投票排序

0 0

采纳的答案

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

2014年3月19日 22:36
0 0

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

2014年3月24日 23:01
0 0

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

2014年3月21日 10:43

相关推荐

Global site tag (gtag.js) - Google Analytics