How an iterator works:
Well, I want to move the red line in the loop init, so it would not mingle with the loop body where only business logic would reside.
Unfortunately that cannot happen. A for loop first inits the data, then checks the condition. With an iterator one has to first check if there are elements, then to get them.
And why would someone give you an iterator instead of a collection, my mind cannot understand. (org.hibernate.Interceptor#postFlush(java.util.Iterator))