I assume you ask out of pure curiosity
and won’t cite Knuth (somebody
probably will).
I believe that once your code gets compiled, it doesn’t make a difference. It does make a difference before (example 2 is a lot more readable and concise), so go for number 2 and do not care about the rest.
Just my 2 cents
EDIT
Note your code in snippet number 1 calculates list.size()
every time the loop runs, that could make it even slower than number 2
YET ANOTHER EDIT
Something I had to double check, Joshua Bloch recommends using for each
loops (see item 46 of Effective Java). I believe that ends all kinds of discussions. Thanks Josh! 🙂