Exception in thread "main" java.util.ConcurrentModificationException at java.util.LinkedList$ListItr.checkForComodification(Unknown Source) at java.util.LinkedList$ListItr.next(Unknown Source) at TestandoIterator.main(TestandoIterator.java:20)
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Exception in thread "main" java.util.ConcurrentModificationException at java.util.LinkedList$ListItr.checkForComodification(Unknown Source) at java.util.LinkedList$ListItr.next(Unknown Source) at TestandoIterator.main(TestandoIterator.java:20)
Olá REGINA MEGUMI, poderia por favor passa a classe que lança a Exception (TestandoIterator.java)!
public class TestandoIterator {
public static void main(String[] args) {
List<String> letras = new LinkedList<>();
Iterator<String> it = letras.iterator();
letras.add("A");
letras.add("B");
letras.add("C");
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
Olá Regina.
Se ainda estiver enfrentando esse problema, faça a declaração do Iterator somente após a chamada dos métodos "add()" em "letras".
Segue artigo que explica o motivo da ocorrência dessa Exception: http://blog.caelum.com.br/concurrentmodificationexception-e-os-fail-fast-iterators/
Segue abaixo código modificado:
public class TestandoIterator {
public static void main(String[] args) {
List<String> letras = new LinkedList<>();
letras.add("A");
letras.add("B");
letras.add("C");
Iterator<String> it = letras.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
}
Se você "pega" o iterator da lista com ela vazia o iterator não tem nenhum item logo não é possível pegar elementos, como foi falado no vídeo caso você já tenha percorrido todos os itens da lista, é necessário criar um novo iterator pois o mesmo já percorreu todos os itens da lista. No seu caso o Iterator está sendo criado com a lista vazia logo o mesmo só reconhece a lista como vazia, se criar ele depois de add os itens ele irá ver quais itens foram add. Faça o teste : Crie um Iterator após add 3 itens na lista, após percorrer a lista imprimindo os itens, add mais itens e veja que se usar o mesmo iterator ele irá apontar o mesmo erro, pois aquele iterador só encherga os itens existentes de quando ele foi criado.