2 回答
TA贡献1824条经验 获得超5个赞
正如我在评论中提到的1 * 3不是四个(而是三个),否则使用 anIntStream.range(int, int)生成索引序列并执行乘法。喜欢,
Integer[] inputArray = new Integer[] { 1, 3, 5, 7, 9 };
int[] outputArray = IntStream.range(0, inputArray.length - 1)
.map(i -> inputArray[i] * inputArray[i + 1]).toArray();
System.out.println(Arrays.toString(outputArray));
哪个输出
[3, 15, 35, 63]
TA贡献1895条经验 获得超3个赞
您可以使用Stream.reduce()方法:
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicInteger;
public class Main {
public static void main(String[] args) {
Integer[] inputArray = new Integer[]{1, 3, 5, 7, 9};
Integer[] outputArray = new Integer[inputArray.length - 1];
AtomicInteger index = new AtomicInteger(0);
Arrays.stream(inputArray).reduce((a, b) -> {
outputArray[index.getAndIncrement()] = a * b;
return b;
});
System.out.println(Arrays.toString(outputArray)); //[3, 15, 35, 63]
}
}
添加回答
举报