public <E extends T>E min(Iterable<E> iterable){
  Iterator<E> iterator=iterable.iterator();
  E minSoFar=iterator.next();
  while (iterator.hasNext()) {
    minSoFar=min(minSoFar,iterator.next());
  }
  return minSoFar;
}

public < E extends T > E min ( Iterable < E > iterable ) { Iterator < E > iterator = iterable . iterator ( ) ; E minSoFar = iterator . next ( ) ; while ( iterator . hasNext ( ) ) { minSoFar = min ( minSoFar , iterator . next ( ) ) ; } return minSoFar ; }
returns the smallest of the specified values according to this ordering . if there are multiple smallest values , the first of those is returned .
