// LinkedRingList.java
// Project: util
// Author: Liar
// 30.04.2008 21:16:25
package util.collection;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.NoSuchElementException;
/**
* @author Liar
*/
public class LinkedRingList<E> extends LinkedList<E> {
private static final long serialVersionUID = -25374615113953969L;
/* (non-Javadoc)
* @see java.util.AbstractSequentialList#iterator()
*/
@Override
public Iterator<E> iterator() {
return new Iterator<E>() {
Iterator<E> iter = LinkedRingList.this.listIterator();
@Override
public boolean hasNext() {
return !LinkedRingList.this.isEmpty();
}
@Override
public E next() {
if (LinkedRingList.this.isEmpty()) {
throw new NoSuchElementException();
}
if (!iter.hasNext()) {
iter = LinkedRingList.this.listIterator();
}
return iter.next();
}
@Override
public void remove() {
iter.remove();
}
};
}
}