Dinero programador orientado a:
El siguiente fragmento no compila. ¿Cómo encontrar el sum
uso forEach
como se muestra a continuación?
private int Sum(ArrayList<Integer> inputs) {
int sum = 0;
inputs.stream().forEach(x -> sum += x);
return sum;
}
Nicholas K:
Esto debería funcionar:
private int Sum(ArrayList<Integer> inputs) {
return inputs.stream().mapToInt(Integer::intValue).sum();
}
EDIT:
El problema con el uso for-each
es que se trata de una operación de terminales, lo que significa que no produce otra corriente intermedia para nosotros trabajar en. El mejor enfoque sería usar mapToInt
que produce una IntStream
sobre la que podemos encontrar fácilmente la suma.