2009-06-30 5 views

ответ

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

Согласно JavaDoc, copy() копии только из одного списка в другой и только к определенным индексам в одном списке другому. addAll() просто добавляет все элементы из одной коллекции в другую, независимо от индекса, и независимо от типа коллекции.

0

Для начала Collections.copy() перезаписывает элементы в списке адресатов и не меняет размер списка. Метод .addAll() добавляет элементы в конец списка, не перезаписывает ничего и увеличивает длину списка, тем не менее, многие элементы были добавлены.

Смежные вопросы