用于在不复制的情况下将现有Java List内容与其他List的元素附加的任何方法

时间:2015-07-09 20:45:21

标签: java memory-management containers

问题

我目前通过java.util.ArrayList界面可以看到2个java.util.List个实例。我想将一个列表的所有元素追加到另一个列表中。我不再关心源列表(l2)了。我确实关心内存,对象生命周期,垃圾收集器和整体性能。

所以我拥有:

List<X> l1 = new ArrayList<X>(); // .... bla-bla-bla
List<X> l2 = new ArrayList<X>(); // .... bla-bla-bla

现在我能做到:

l1.addAll(l2);
l2.clear();

看起来它应该引起更快的l2清理所需的效果。但复杂性呢?

问题

理想情况下,我希望收到更好的内容,例如

l1.moveSomeReference(l2);

添加l1l2个元素,l2以最小的复杂度清空。

有可能吗?如果是,怎么做?

其他说明

  • 目的是减少GC的对象生命周期。
  • l1l2都封装在对象中,对象作为方法的参数。因此,只需使用null进行分配即可,但并非如此。
  • 可以更换容器。最好保持List界面。

0 个答案:

没有答案