如何 return 并清除列表?
How to return and clear a list?
我想知道是否有更优雅的方法来 return 属性并更改/"reset" 它的值。这是我现在一直在做的方式:
[...]
final List<T> copyOfOriginal = new ArrayList<T>(original);
original.clear();
return copyOfOriginal;
[...]
我真的必须复制整个列表吗?
在许多情况下,可以简单地用一个新的空列表替换列表,同时返回原始引用:
final List<T> ret = original;
original = new ArrayList<T>();
return ret;
这里需要注意的是,这会更改原始参考资料。如果有多个副本,这可能需要格外小心。
我想知道是否有更优雅的方法来 return 属性并更改/"reset" 它的值。这是我现在一直在做的方式:
[...]
final List<T> copyOfOriginal = new ArrayList<T>(original);
original.clear();
return copyOfOriginal;
[...]
我真的必须复制整个列表吗?
在许多情况下,可以简单地用一个新的空列表替换列表,同时返回原始引用:
final List<T> ret = original;
original = new ArrayList<T>();
return ret;
这里需要注意的是,这会更改原始参考资料。如果有多个副本,这可能需要格外小心。