public static void printStatistics(int... a) {
for (NumberValue nv : NumberValue.values()) {
System.out.println(nv.name() + " = " + sum(nv.getPredicate(), a));
}
}
private static enum NumberValue {
GREATER_THAN_0, LESS_THAN_0, EQUAL_TO_0;
private IntPredicate getPredicate() {
return this == GREATER_THAN_0 ? i -> i > 0 : this == LESS_THAN_0 ? i -> i < 0 : i -> i == 0;
}
}
public static double sum(IntPredicate predicate, int... a) {
return Arrays.stream(a).filter(predicate).mapToDouble(i -> 1.0 / a.length).sum();
}
public static void main(String[] args) {
printStatistics(-5, 5, 4, 3, 2, 1, 0, -1);
}
Comentarios sobre la versión: 1.0 (1)