public static <E,N extends Comparable<N>> E maxE(Collection<E> col, F1<E, N> f1) {

		N max = null;
		E eMax = null;
		for (E e : col) {
			N a = f1.e(e);
			if (max == null || max.compareTo(a) < 0) {
				eMax = e;
				max = a;
			}
		}
		
		return eMax;
	}