question: public static < E > List < E > asList ( Iterable < E > iterable ) { if ( iterable instanceof List ) { return ( List < E > ) iterable ; } List < E > result = new ArrayList < E > ( ) ; for ( E e : iterable ) { result . add ( e ) ; } return result ; }
target:  Returns the given Iterable as a List. If the current Iterable is already a List, then the Iterable is returned directly. Otherwise a new List is created with the same elements as the given Iterable.