ответ willcodejavaforfood - один из способов сделать это.
Альтернативой, которая может быть лучше или хуже в зависимости от стиля и того, что еще вы хотите сделать в цикле, является явное получение Iterator
и использование его метода remove
:
final Iterator<Element> iter = appinfos.iterator();
while (iter.hasNext()) {
if (iter.next().getText().startsWith(
PARAMETER_DESCRIPTION_APPINFO)) {
iter.remove();
}
}
Это, конечно, работает, только если вы хотите сделать простое удаление из коллекции. При вызове потенциально сложных методов, которые будут непосредственно удалены из базовой коллекции, наилучший подход состоит в том, чтобы изначально взять копию коллекции, а затем выполнить итерацию по этой копии.
Во всех случаях изменение коллекции во время ее итерации обычно приводит к возникновению плохих вещей.