Iterables present two methods for getLast 
 public static <T> T getLast(Iterable<T> iterable);
 public static <T> T getLast(Iterable<T> iterable, @Nullable T defaultValue);
but only one for getFirst
 public static <T> T getFirst(Iterable<T> iterable, @Nullable T defaultValue);
Is there are any design/implementation reason for breaking symmetry?
 
     
     
     
     
    