我有一个填充的arraylist(称为A)。我有另一个arraylist,也填充(称为B)。
A有5个元素 B有3个元素
我是否可以将所有B的元素添加到A中,以便B的元素从6(A + 1的长度)开始,总共有8个元素。我希望通过任何精心设计的循环,但内置方法,这样做吗?
另外,表现明智,这种想法有多糟糕(如果它一点都不好)?
由于
答案 0 :(得分:7)
我相信List.addAll(index,collection)方法应该做你需要的。
根据你提到的尺寸,这应该永远不会显示你的表现。即使是2个数量级也不成问题。
编辑:我仔细检查了ArrayList.addAll()的实现。它尽可能高效。它将进行单个增长以容纳新元素,并使用System.arrayCopy移动元素。
答案 1 :(得分:1)
List.addAll()
性能方面,这不太可能对5 + 3产生太大影响。如果你有更大的影响,你可以先创建一个正确大小的新 ArrayList
,以避免不必要的分配。或者,使用LinkedList
,它将具有不同的性能特征。
编辑:正如其他人所解释的那样,ArrayList.addAll()
与你能得到的一样好。