Junior — Middle
De que forma é possível modificar o conteúdo de uma coleção durante a sua iteração?
sobes.tech IA
Resposta da IA
Em Java, para modificar de forma segura uma coleção durante a sua iteração, recomenda-se usar um iterador com suporte para remover ou adicionar elementos.
Exemplo usando Iterator para remover elementos:
List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
String item = iterator.next();
if (item.equals("b")) {
iterator.remove(); // remoção segura do elemento durante a iteração
}
}
Para adicionar elementos durante a iteração, pode-se usar ListIterator:
List<String> list = new ArrayList<>(Arrays.asList("a", "b", "c"));
ListIterator<String> listIterator = list.listIterator();
while (listIterator.hasNext()) {
String item = listIterator.next();
if (item.equals("b")) {
listIterator.add("d"); // adição de elemento durante a iteração
}
}
É importante não modificar a coleção diretamente (por exemplo, através de list.remove()), pois isso lançará uma ConcurrentModificationException.