Given the next code :
// this is a part of some large method //
ArrayList players = this.m_maze.getPlayers(); // define
If you want to reuse the iterator, you have to re-initialise it.
You have to execute Iterator iterator = players.iterator(); whenever you want to reuse the iterator.
Iterator iterator = players.iterator();