【发布时间】:2011-10-21 03:22:03
【问题描述】:
这两个选项中哪一个更好更快地清除 ArrayList,为什么?
list.clear()
或
list = new ArrayList<Integer>();
碰巧我必须随机清除 ArrayList 中的所有条目,我无法知道将来会有多少新条目,可能是 0 或 1000。哪种方法更快更好,为什么?
【问题讨论】:
-
它们是不同的。使用适合的任务。因为我喜欢尽量减少副作用,所以我经常选择后者。在这里担心“性能”是......可能很愚蠢。
-
如何在泛型中使用原始类型?您必须使用包装类。
-
您是否进行过任何基准测试?这将是找出答案的最佳方式。
-
答案也可能取决于您是否共享您的列表。如果它是一个共享列表,那么其他使用它的人可能会惊讶于你调用 clear 后它是空的。但是,如果您分配一个新列表,它不会摆脱引用(如果第一个列表是共享的)