public static <E,F>List<F> transform(Iterable<E> iterable,Transform<E,F> transform){
  List<F> result=new ArrayList<>();
  for (  E e : iterable) {
    result.add(transform.transform(e));
  }
  return result;
}

public static < E , F > List < F > transform ( Iterable < E > iterable , Transform < E , F > transform ) { List < F > result = new ArrayList < > ( ) ; for ( E e : iterable ) { result . add ( transform . transform ( e ) ) ; } return result ; }
transforms each element in the given iterable and returns the result as a list . does not change the given iterable , or the items stored therein .
