Pessoal, alguém no Fórum já fez o teste em Java processando grande número de informação usando Loop para ver se existe diferença de tempo na execução entre While e For ? Algumas linguagens o For internamente é um While implementado, no Java será que seria também ?!
Não há muita diferença. Na maior parte das linguagens, os dois acabam sendo convertidos para os mesmos JMPs no assembly.
Não se preocupe em velocidade com aspectos tão básicos. Existem outros gargalos muitíssimo mais significativos em seu programa, antes que você tenha que pensar sobre que tipo de comando desses é mais rápido.
Pq c ñ faz um teste? Faça um loop com sei lá, 10 milhões de iterações e anote a diferença do tempo. (:
Dificilmente esse teste vai funcionar. =(
O compilador identificaria o dead code e eliminaria. Os dois loops seriam instantâneos. Se você colocar QUALQUER operação dentro do loop (mesmo que uma soma, creio eu) você terá o ruído dessa operação impactando nos resultados.
Para esse tipo de teste, seria ligeiramente mais confiável descompilar o bytecode e ver o resultado gerado. Entretanto, para saber MESMO, só vendo o código que JVM compila no final.
Dificilmente esse teste vai funcionar. =(
O compilador identificaria o dead code e eliminaria. Os dois loops seriam instantâneos. Se você colocar QUALQUER operação dentro do loop (mesmo que uma soma, creio eu) você terá o ruído dessa operação impactando nos resultados.
Para esse tipo de teste, seria ligeiramente mais confiável descompilar o bytecode e ver o resultado gerado. Entretanto, para saber MESMO, só vendo o código que JVM compila no final. [/quote]
Legal. (:
O interessante é que isso pode até ficar de lado quando tomamos um lado mais funcional. Usar as lambda expressions com o Collections#forEach, por exemplo, acaba abstraindo o loop. E voltamos ao argumento do Vini de que há muitos outros pontos mais significativos no programa.