I am attempting to implement the Java.stream() method to multiple a list of numbers together in Java 8. I have imported the java.util.stream*; package. The static method is set to return an int and take in an array. However, when I call .stream().reduce() on the array, I get the error:
error: cannot find symbol
int count = x.stream().reduce(1, (a, b) -> a * b).sum();
^
symbol: method stream()
location: variable x of type int[]
How can I properly use the stream() method to multiple the values of the array together in order?
The class I have defined as:
import java.util.stream.*;
public class Kata{
public static int grow(int[] x){
int count = x.stream().reduce(1, (a, b) -> a * b).sum();
return count;
}
}
You need Arrays.stream
to convert an array into a stream:
int count = Arrays.stream(x).reduce(1, (a, b) -> a * b);
The sum()
step you were doing at the end doesn't make sense, because after reduce
we are already left with just a single primitive integer. So I removed it.