【发布时间】:2020-09-21 13:13:24
【问题描述】:
我正在尝试创建一个方法,该方法将接收一个数组并返回一个新数组,该数组将每 2 个值相加以创建一个新值并继续下一个 2 个值。如果我有一个 {5,8,4,2} 数组,我希望该数组变为 {13,6}。到目前为止,在我的代码中,我已将其设置为创建 {5,8,4,2} 数组并将其变为 {13,12,6,0} 但是,我不希望它添加大大地。所以我想知道如何让我的程序在第一次加法后跳过第二个值?还有,最后怎么去掉那个没用的零呢?
import java.util.*;
import java.io.*;
public class reduceArray{
public static int[] reduce(int[] currentArray){
int[] newArray = new int[currentArray.length];
for(int i = 0; i < currentArray.length -1; i++){
newArray[i] = currentArray[i] + currentArray[i+1];
}
return newArray;
}
public static void main(String[] args){
int[] arrayANew;
int[] arrayA = {5,8,4,2};
arrayANew= reduce(arrayA);
System.out.println(Arrays.toString(arrayANew) );
}
}
【问题讨论】:
-
也许您想增加索引以跳过所有其他元素?
-
我最初拥有它,所以 for 循环每次都会加 2,但这有点奏效,但在新数组中,下一个索引只会返回零。示例:{15, 20, 30, 1} 的数组将返回为 {35, 0, 50, 0, 31}
-
类似的问题,但专注于使用 Java Streams 的解决方案:Java Stream: is there a way to iterate taking two elements a time instead of one?
标签: java arrays for-loop return