** copy **和** addAll **之间有什么区别吗?

时间:2009-06-30 17:53:53

标签: java collections

1)这两个关键字对于集合元素是否有任何差异?(这些元素复制到另一个集合中, addAll 这些元素与其他集合)

3 个答案:

答案 0 :(得分:6)

是的,有区别。

来自java docs

Copy将一个列表中的所有元素复制到另一个列表中。在操作之后,目标列表中每个复制元素的索引将与源列表中的索引相同。目标列表必须至少与源列表一样长。如果它更长,则目标列表中的其余元素不受影响。

示例: Copy [1,2,3][4,5,6,7,8] => [1,2,3,7,8]

AddAll将所有指定元素添加到指定的集合

示例: AddAll [1,2,3][4,5,6,7,8] => [4,5,6,7,8,1,2,3]

答案 1 :(得分:1)

根据JavaDoc,copy()仅从一个列表复制到另一个列表,并且仅复制到一个列表上的特定索引到另一个列表。 addAll()只是将所有项目从一个Collection添加到另一个Collection,无论索引如何,无论Collection的类型如何。

答案 2 :(得分:0)

对于初学者,Collections.copy()会覆盖目标列表中的元素,并且不会更改列表的大小。 .addAll()方法将元素添加到列表的末尾,不会覆盖任何内容,并且通过添加许多元素来增加列表的长度。