public static <T>Iterator<T> reverse(Iterator<T> self){
  return new ReverseListIterator<T>(toList(self));
}

public static < T > Iterator < T > reverse ( Iterator < T > self ) { return new ReverseListIterator < T > ( toList ( self ) ) ; }
reverses the iterator . the original iterator will become exhausted of elements after determining the reversed values . a new iterator for iterating through the reversed values is returned .
