Есть ли какие-либо причины предпочесть один подход по сравнению с другим
blockquote>. Первый подход будет работать, но имеет очевидные накладные расходы на копирование списка.
Второй подход не будет работать, потому что многие контейнеры не допускают модификации во время итерации. Это включает в себя
ArrayList
.Если единственной модификацией является удаление текущего элемента, вы можете сделать работу второго подхода с помощью
itr.remove()
(т. е. использовать метод итератораremove()
, а не контейнер ). Это был бы мой предпочтительный метод для итераторов, которые поддерживаютremove()
.