Como remover elementos de uma coleção em um loop sem ConcurrentModificationException em Java?
Olá a todos! Sou um desenvolvedor Java iniciante e encontrei um erro muito estranho. Estou escrevendo um programa simples: tenho uma lista de strings e quero remover todos os elementos que começam com a letra "A". Parece lógico, mas ao executar, ocorre uma ConcurrentModificationException.
Aqui está meu código:
```java
List list = new ArrayList<>(Arrays.asList("Apple", "Banana", "Avocado", "Cherry"));
for (String fruit : list) {
if (fruit.startsWith("A")) {
list.remove(fruit);
}
}
```
O erro ocorre na iteração após a remoção. Eu li que não se pode modificar uma coleção durante um loop for-each, mas como então remover os elementos corretamente? Preciso alterar a lista original, não criar uma nova.
Por favor, me digam como fazer isso corretamente? Quais são as formas seguras de remover elementos de uma coleção durante sua iteração? Desde já, obrigado!
<<>>
Problema: por que ocorre ConcurrentModificationException
Você encontrou um problema clássico