@Override public int reduce(int identity, IntBinaryOperator op) { return performOperation( TerminalFunctions.reduceFunction(identity, op), true, (i1, i2) -> op.applyAsInt(i1, i2), null); }
@Override public OptionalInt reduce(IntBinaryOperator op) { Integer result = performOperation( TerminalFunctions.reduceFunction(op), true, (i1, i2) -> { if (i1 != null) { if (i2 != null) { return op.applyAsInt(i1, i2); } return i1; } return i2; }, null); if (result == null) { return OptionalInt.empty(); } else { return OptionalInt.of(result); } }