Salve!

Devo realizzare una LinkedList doppiamente concatenata, ma ho problemi con il ListIterator e l'iteratore, potete dirmi gentilmente come funziona?

in vero dovrei implementare la seguente interfaccia, ma credo di avere problemi solo con l'iteratore:
codice:
 public interface Lista<T> extends Iterable<T>{
		public int size();
		public void clear();
		public void addFirst( T elem );
		public void addLast( T elem );
		public T getFirst();
		public T getLast();
		public T removeFirst();
		public T removeLast();
		public boolean isEmpty();
		public boolean isFull();
		public void sort( Comparator<T> c );
		public ListIterator<T> listIterator();
		public ListIterator<T> listIterator( int start );
		}//Lista
vi ringrazio per il sostegno