Iterator.remove()
безопасен, вы можете использовать его следующим образом:
List list = new ArrayList<>();
// This is a clever way to create the iterator and call iterator.hasNext() like
// you would do in a while-loop. It would be the same as doing:
// Iterator iterator = list.iterator();
// while (iterator.hasNext()) {
for (Iterator iterator = list.iterator(); iterator.hasNext();) {
String string = iterator.next();
if (string.isEmpty()) {
// Remove the current element from the iterator and the list.
iterator.remove();
}
}
Обратите внимание, что Iterator.remove()
является единственным безопасным способом изменять коллекцию во время итерации; поведение не определено, если базовая коллекция модифицируется каким-либо другим способом, пока выполняется итерация.
Источник: docs.oracle> Интерфейс коллекции
Аналогичным образом, если у вас есть ListIterator
и вы хотите добавить элементы, вы можете использовать ListIterator#add
, по той же причине вы можете использовать [f6 & mdash;] & NBSP; он предназначен для этого.