code: public static <E> E last(Iterator<E> iterator) {
          return new LastElement<E>().apply(iterator);
      }
docs: Yields the last element.
  
  @param <E> the iterator element type
  @param iterator the iterator that will be consumed @throw
  IllegalArgumentException if no element is found
  @return the last element