Есть два основных способа скопировать элементы из исходного списка в другой список в Java, каждый имеет свои плюсы и минусы.
Самый простой подход — использовать конструктор ArrayList:
ArrayList<Integer> newList = new ArrayList<Integer>(sourceList);
Этот способ просто создаёт новый список со всеми элементами из исходного списка за одну операцию.
Альтернативный подход использует метод Collections.copy():
ArrayList<Integer> newList = new ArrayList<Integer>(sourceList.size());
Collections.copy(newList, sourceList);
Collections.copy() не изменяет размер целевого списка автоматически. Если места недостаточно, будет выброшен IndexOutOfBoundsException.
| Аспект | Конструктор ArrayList | Collections.copy() |
|---|---|---|
| Простота использования | Очень просто | Нужно заранее задать размер |
| Производительность | Хорошо | Гарантированное линейное время |
| Переиспользование памяти | Выделяет новую память | Переиспользует существующий список |
| Типы параметров | Принимает любую Collection | Принимает только List |
Collections.copy() когда переиспользуешь существующие списки или нужна гарантированная линейная производительность при ограничениях по памятиМетод Collections.copy() автоматически изменяет размер целевого списка в соответствии с размером исходного списка, если это необходимо.
Новый — ещё не проверен сообществом
Вы