我试图实现Java.stream()方法,在Java 8中将一系列数字相乘。我已经导入了Java . util . stream *;包裹。静态方法被设置为返回一个int并接受一个数组。然而,当我打电话时。流()。数组上的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[]
如何正确使用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;
}
}
首先将数组转换为< code>List以对其进行流处理,或者您也可以按照@ Tim Biegeleisen的建议使用< code>Arrays.stream(x)
Arrays.asList(x).stream(x).reduce(1, (a, b) -> a * b);
您需要Arrays.stream
将数组转换为流:
int count = Arrays.stream(x).reduce(1, (a, b) -> a * b);
您在最后执行的sum()
步骤没有意义,因为在减少
之后,我们已经只剩下一个原始整数。所以我删除了它。
嘿,我刚刚开始我的第一本关于Java的编程书,所以这应该是一个简单的修复。把我对条件句的新知识弄得乱七八糟的,结果我得到了标题错误。 代码如下: 当我尝试编译:
尝试以以下方式创建(或者更确切地说是学习): 我正在使用一个在线编译器,并且已经搜索了很多,我发现我的声明方式是正确的,但是其他的东西正在弹出错误 下面是错误 我需要的帮助是:我只是试图获得创建一个hashmap的基础,并在其中插入一些键和值,但上面的错误阻止了我在第一步............................................................:)
问题内容: 我使用时代码工作正常 吗?在我看来这很奇怪。 (错误显示在终端上) 问题答案: 这是 Arrays 类的静态方法。 您应该像这样调用它: 请注意,您仍然必须像这样导入Arrays类: 或者像其他人提到的那样,如果您进行静态导入,则可以省略类名。 我认为这样做对可读性更好。
(菜鸟失误,我确定。) 我是计算机科学专业的一年级学生,正在尝试用代码编写作业程序; 但是在编译时,我得到了错误; Lab10Ex1.java:10: 错误: 找不到符号 System.out.print(n 1);^ 符号:变量n 位置: 班级 Lab10Ex1 如果有人能向我解释我做错了什么,或者如何纠正它,我会非常感激。
我正在创建一个程序,用户(教师)在其中输入一组百分比分数,并对这些分数进行分析,输出框打印出平均值、最小值/最大值、范围和“R级”、“1级”、“2级”等分数。 我面临的问题是将分数分为不同级别的方法。当我尝试将数组返回到main方法,并尝试将其打印到输出时,我得到了一个数组错误,即“找不到符号” 因此,当我使用主方法打印所有信息时,我应该将levelCount数组放入另一个数组中,我做到了。以下是
尝试以以下方式创建(或者更确切地说学习)一个: 我正在使用一个在线编译器,并且已经搜索了很多,我发现我的声明方式是正确的,但是出现了其他错误 下面是错误 我需要帮助的是:我只是想了解创建hashmap并在其中插入一些键和值的基本知识,但是上面的错误在第一步就阻止了我……非常感谢对解决此问题的任何帮助!!:)