This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
If you read the docs, you'll see that calling next() and previous() doesn't just return the next or previous element. It also changes the state of the iterator, moving it one forward or one back. If you don't call remove(), then you're just going forward, back, forward, back, ... forever, and never getting to the end of the list.