public static <E> E first(Iterable<E> iterable) {
        dbc.precondition(iterable != null, "cannot call first with a null iterable");
        return new FirstElement<E>().apply(iterable.iterator());
    }
public static < E > E first ( Iterable < E > iterable ) { dbc . precondition ( iterable != null , "cannot call first with a null iterable" ) ; return new FirstElement < E > ( ) . apply ( iterable . iterator ( ) ) ; }
Yields the first element of the iterable.

@param <E> the element type parameter
@param iterable the iterable to be searched
@throws IllegalArgumentException if no element is present
@return the found element