Concat两个人口稠密的arraylists没有覆盖任何东西?

时间:2011-01-10 23:53:49

标签: java

我有一个填充的arraylist(称为A)。我有另一个arraylist,也填充(称为B)。

A有5个元素 B有3个元素

我是否可以将所有B的元素添加到A中,以便B的元素从6(A + 1的长度)开始,总共有8个元素。我希望通过任何精心设计的循环,但内置方法,这样做吗?

另外,表现明智,这种想法有多糟糕(如果它一点都不好)?

由于

2 个答案:

答案 0 :(得分:7)

我相信List.addAll(index,collection)方法应该做你需要的。

根据你提到的尺寸,这应该永远不会显示你的表现。即使是2个数量级也不成问题。

编辑:我仔细检查了ArrayList.addAll()的实现。它尽可能高效。它将进行单个增长以容纳新元素,并使用System.arrayCopy移动元素。

答案 1 :(得分:1)

List.addAll()

性能方面,这不太可能对5 + 3产生太大影响。如果你有更大的影响,你可以先创建一个正确大小的新ArrayList,以避免不必要的分配。或者,使用LinkedList,它将具有不同的性能特征。

编辑:正如其他人所解释的那样,ArrayList.addAll()与你能得到的一样好。