1)这两个关键字对于集合元素是否有任何差异?(将这些元素复制到另一个集合中, addAll 这些元素与其他集合)
答案 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()
方法将元素添加到列表的末尾,不会覆盖任何内容,并且通过添加许多元素来增加列表的长度。