* @param wouldRemove
	 * @return Removed elements
	 */
	public static <E> List<E> remove(Iterable<E> col, F1<E,Boolean> wouldRemove) {
		LinkedList<E> ret = new LinkedList<>();
		for (Iterator<E> iterator = col.iterator(); iterator.hasNext();) {
			E e = iterator.next();
			if (wouldRemove.e(e)) {
				ret.add(e);
				iterator.remove();
			}
		}
		return ret;
	}