如何返回并清除列表?

时间:2016-09-04 16:45:51

标签: java performance list return return-value

我想知道是否有更优雅的方法来返回属性并更改/"重置"它的价值。这就是我现在这样做的方式:

[...]

final List<T> copyOfOriginal = new ArrayList<T>(original);
original.clear();

return copyOfOriginal;

[...]

我真的要复制整个清单吗?

1 个答案:

答案 0 :(得分:5)

在许多情况下,可以在返回原始引用时简单地用新的空列表替换列表:

final List<T> ret = original;
original = new ArrayList<T>();
return ret;

这里需要注意的是,这会改变原始引用。如果有多个副本,可能需要额外的照顾。