@Override
 public E next() {
   previous = node;
   node = node.getNext();
   return ((ListNode<E>) node).getItem();
 }
 @Override
 public void remove() {
   previous.setNext(node.getNext());
   node = previous;
 }
 @Override
 public boolean hasNext() {
   return node.getNext() != null;
 }