code: public static <T, C extends Comparable<? super C>> List<T> sortInplaceBy(List<T> list,
  			final Functions.Function1<? super T, C> key) {
  		if (key == null)
  			throw new NullPointerException("key");
  		Collections.sort(list, new KeyComparator<T, C>(key));
  		return list;
  	}
docs: Sorts the specified list itself according to the order induced by applying a key function to each element which
  yields a comparable criteria.
  
  @param list
  the list to be sorted. May not be <code>null</code>.
  @param key
  the key function to-be-used. May not be <code>null</code>.
  @return the sorted list itself.
  @see Collections#sort(List)