我正在尝试对2D数组的所有int值求和。我把它命名为数组。我的函数称为arraySum。如果arraySum为null,则返回0。否则,它将经过两个for循环,对这些数组的值求和。
int i = 0;
int j = 0;
static int sum = 0;
int[][] array = new int[i][j];
static int arraySum(int[][] array) {
if (array == null) { // test if the incoming param is null
return 0;
} else {
for (int i = 0; i < array.length; i++) { // length of the outer array
for (int j = 0; j < array[i].length; j++) { // length of the inner array
sum += array[i][j];
}
}
return sum; // moved out of the loop
}
}
我的错误消息:
java.lang.AssertionError: Incorrect result: expected [-217085] but found [-308126]
流也可以做到这一点:
//Create 2D array
int[][] array = {{1,2,3},{4,5},{6}};
//Sum all elements of array
int sum = Stream.of(array).flatMapToInt(IntStream::of).sum();
System.out.println(sum);
拆开求和代码:
Stream.of(array)
将< code>int[][]类型的2D数组转换为< code >流
因此,此时我们将有一个包含以下内容的流:
.flatMapToInt(IntStream::of)
到目前为止,我们有一个int[]
的流,仍然是二维的。平面映射将结构扁平化为单个int流。
将流中的每个int元素扩展为一个或多个int值。IntStream.of()获取一个数组并将其转换为一个int流。将这两个元素组合在一起可以得到一个int值流。
在展平之后,我们将得到一个int流:
{1,2,3,4,5,6}
.sum()
现在我们有一个IntStream
,其中包含从原始2D数组扩展的所有元素,这仅获取所有值的总和。
现在是免责声明 - 如果你是Java的新手并且正在学习数组,这可能有点太高级了。我建议学习嵌套 for 循环和迭代数组。但是,了解 API 何时可以为您完成大量工作也很有用。
避免使用primitive for语句。请参见以下内容:
static int arraySum(int[][] array) {
int sum = 0;
if (array == null) return 0;
for(int[] row: array){
for(int col : row) {
sum += col;
}
}
return sum;
}
以下是固定代码:
static int arraySum(int[][] array) { // fix the signature
if (array == null) { // test if the incoming param is null
return 0;
} else {
int sum = 0; // you need this in the scope of the method - it will be returned at the end
for (int i = 0; i < array.length; i++) { // length of the outer array
for (int j = 0; j < array[i].length; j++) { // length of the inner array
sum += array[i][j];
}
}
return sum; // moved out of the loop
}
}
编辑:我现在只专注于方法 - 你如何称呼它取决于你。请注意,该方法不会影响任何外部定义的 sum
变量。它将返回总和,并由调用方将该值存储在某个位置。
编写一个程序,返回一个新数组,该数组包含所有大于数组中第一个值的值。如果数组中没有大于第一个值的值,则返回空数组。如果数组为空,则返回一个空数组。 我这样解决这个问题: 谢谢
问题内容: 如果我有 我有: 然后,我可以成功执行以下操作: 但是,假设我要在doSomething中添加另一个参数,例如: 如果我这样称呼,Go在编译时会抱怨: 带有: 有没有办法做到这一点,还是我应该放弃并将返回值分配给某些引用,并将msg和这些值传递给? 问题答案: 在规范中对此进行了描述。它要求内部函数返回所有参数的正确类型。没有多余的参数以及返回多个值的函数。 作为一种特殊情况,如果一个
如果指针类型作为函数参数,修改形参会影响实参 不能将函数内的指向局部变量的指针作为返回值,函数结束指向空间会被释放 可以将函数内的局部变量作为返回值,本质是拷贝一份
本文向大家介绍返回JavaScript中数组的最小值和最大值的函数,包括了返回JavaScript中数组的最小值和最大值的函数的使用技巧和注意事项,需要的朋友参考一下 问题 我们需要编写一个接受一个数组并返回另一个数组的JavaScript函数,该数组的第一个元素应该是输入数组的最小元素,第二个应该是输入数组的最大元素。 示例 以下是代码- 输出结果
我一直在找这样的东西,但我找不到,所以就来了。 一些背景 我使用opencv从视频文件中检索帧。通常人们会无休止地循环这样做: 或 现在我想检索所有帧并在没有更多帧时退出循环。然而,我在python中的技能还不够强,无法做我想做的事情。 我想知道的是 函数(或方法,我不知道它们在python中是如何调用的)返回一个元组:首先代表操作成功,其次代表返回的帧。当元组的第一个元素为false时,我想打破
问题内容: 我想编写以下功能,该功能应在Excel工作表中使用: …这将通过ODBC在内部连接到SQL数据库,然后在其中执行 并将返回结果值作为函数GetRecField的结果。上面的SQL被授权仅返回一个记录(IOW KEY_FIELD具有唯一约束)。 当然,上面的函数可以在工作表中多次调用,所以请尽量避免盲目 TIA。 问题答案: 您可以编写一个自定义函数来做到这一点 打开VBA编辑器(ALT