Fala, Bruno! Tudo bem contigo?
Desculpe a demora em dar um retorno
Essa questão eu não diria que seria um caso de "performance", mas de situações em que deve ser usado um ou outro.
O loop for-each fornece vantagens atraentes sobre o loop for tradicional em clareza e prevenção de erros, sem perda de desempenho. Você deve usá-lo onde puder, mas infelizmente tem três situações comuns em que não é possível usar um loop for-each:
- 1 - Filtragem: Se você precisar percorrer uma coleção e remover elementos selecionados, terá que usar um iterador explícito para poder chamar seu método
remove
. - 2 - Transformação: Se você tiver que percorrer uma lista ou matriz e substituir alguns ou todos os valores de seus elementos, precisará do iterador de lista ou do índice de matriz para definir o valor de um elemento.
- 3 - Iteração paralela: Se você tiver que percorrer várias coleções em paralelo, precisará de controle explícito sobre a variável de iterador ou de índice, para que todas as variáveis de iterador ou de índice possam ser avançadas de maneira cadenciada.
Se perceber que está em uma dessas situações, use um loop for comum.
Esse é um assunto para uma boa roda de conversa, Bruno!
Valeu pela dúvida! Foi boa!
Espero ter ajudado!
Um abraço e bons estudos