Java stream Java数组流

Java stream Java数组流,java-stream,Java Stream,我正在写一个函数来计算数组中的偶数。当我使用Arrays.stream(数字)创建流时,它工作得很好。但是,当我尝试使用stream.of(number)创建流时,在筛选过程中收到错误消息“未定义参数类型int[],int的运算符%”。 这是什么原因造成的?这里的实际问题是什么 第一个return语句导致错误, 第二个return语句工作得很好 public static long countEvenNumbers(int[] numbers) { return Str

我正在写一个函数来计算数组中的偶数。当我使用Arrays.stream(数字)创建流时,它工作得很好。但是,当我尝试使用stream.of(number)创建流时,在筛选过程中收到错误消息“未定义参数类型int[],int的运算符%”。 这是什么原因造成的?这里的实际问题是什么

第一个return语句导致错误, 第二个return语句工作得很好


    public static long countEvenNumbers(int[] numbers) {
        return Stream.of(numbers).filter(x -> x % 2 == 0).count();
        // return Arrays.stream(numbers).filter(x -> x % 2 == 0).count();
    }

这是因为的
Stream#,而您的“指定值”由单个元素组成,即int[]

Arrays.stream
however“”,即数组中的单个元素一个接一个


顺便说一句,在您的情况下,您可能想要
IntStream.of(numbers)

为什么不使用现有数组的
Arrays.stream(…)
,无论您是否有
int[]
long[]
double[]
或对象数组,它都可以工作…