尝试在 Java 中的数组上使用 .stream() 时出现“找不到符号错误”

Dog*_*Dog 6 java reduce stream

我正在尝试实现 Java.stream() 方法,以在 Java 8 中将多个数字列表组合在一起。我已经导入了 java.util.stream*; 包裹。静态方法设置为返回一个 int 并接受一个数组。但是,当我在数组上调用 .stream().reduce() 时,出现错误:

error: cannot find symbol
    int count = x.stream().reduce(1, (a, b) -> a * b).sum();
                 ^
  symbol:   method stream()
  location: variable x of type int[]
Run Code Online (Sandbox Code Playgroud)

如何正确使用stream()方法按顺序将数组的值乘在一起?

我定义的类为:

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;  
  }

}
Run Code Online (Sandbox Code Playgroud)

Tim*_*sen 6

您需要Arrays.stream将数组转换为流:

int count = Arrays.stream(x).reduce(1, (a, b) -> a * b);
Run Code Online (Sandbox Code Playgroud)

sum()您最后执行的步骤没有意义,因为之后我们reduce已经只剩下一个原始整数了。所以我把它删除了。