import reactor.fn.BiFunction;

public class IterableReducer {

	private IterableReducer() {
	}

	public static <T> T reduce(Iterable<T> iterable, T initial, BiFunction<T, T, T> biFunction) {

		T result = initial;
		for (T each : iterable) {
			result = biFunction.apply(result, each);
		}
		return result;
	}

	public static <F,T> T reduce2(Iterable<F> iterable, T initial, BiFunction<T, F, T> biFunction) {

		T result = initial;
		for (F each : iterable) {
			result = biFunction.apply(result, each);
		}
		return result;
	}
}
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2016-07-27 17:02:32
Processing time 0.0048 sec