It actually allows the JVM to more efficiently remove the objects all in one go, although I doubt whether it will make much difference at the moment.
Puf
Isn't that highly dependent upon data structure, though?
For instance, isn't it much better to iterate over a huge linked list only once, removing as you go, than to iterate over it twice, but with a reduced number of reference re-assignments (assuming best-case scenario, that many removed items are contiguous)?
If the items are discontiguous, so that exactly the same number of ops are needed for the removes in each case, then the double iteration is always going to be much slower.
Bascially, it's shockingly short-sighted syntactic sugar. Sigh. /me wonders what happened in the java decision process to let *this* through