Olá Pessoal, tudo bom?
Aqui é a resposta do puzzle 003. Veja na continuação deste post!
Puzzle 003 – Resposta
E agora baseado no Puzzle 002 do for-each será que uma inserção na lista irá ter um resultado diferente da exclusão. Vamos ver o que esse código irá gerar.
O código apresentado na classe Teste irá gerar uma exception durante a execução do teste, como mostra a stack trace abaixo:
java.util.ConcurrentModificationException
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:859)
at java.util.ArrayList$Itr.next(ArrayList.java:831)
at br.com.mauda.puzzle.foreach.numero002.Teste.testar(Teste.java:27)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
… 20 more
Isso pois a lista de Strings, linguagens, está sendo iterada pelo for each, sendo “travada” pelo Java (Lock), logo assim que a linha 28 é executada, esta tenta modificar a list (Remove, Add, Set, fazem esse tipo de mudança), mas como está travada pelo Java, irá gerar uma java.util.ConcurrentModificationException.
finnaly{
Gostando dos puzzles? Duvidas ou sugestões? Deixe seu feedback! Isso ajuda a saber a sua opinião sobre os artigos e melhorá-los para o futuro! Isso é muito importante!
Até um próximo post!
Leave a Reply