如何使用Java流将第一个元素乘以第二个元素
我想得到当前元素的乘积,列表中的下一个元素,但应该只使用JavaStreamsAPI如何使用Java流将第一个元素乘以第二个元素,java,Java,我想得到当前元素的乘积,列表中的下一个元素,但应该只使用JavaStreamsAPI Integer[] inputArray = new Integer[]{1, 3, 5, 7, 9} Integer[] outputArray = new Integer[]{4, 15, 35, 63} 谢谢正如我在评论中提到的1*3不是四(它是三),否则使用IntStream.range(int,int)生成索引序列并执行乘法。像 Integer[] inputArray = new Integer[
Integer[] inputArray = new Integer[]{1, 3, 5, 7, 9}
Integer[] outputArray = new Integer[]{4, 15, 35, 63}
谢谢正如我在评论中提到的
1*3
不是四(它是三),否则使用IntStream.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]
您可以使用以下方法:
您遇到的问题是:获取元素还是将元素相乘?到目前为止,您是否编写过任何代码试图解决这个问题,如果是的话,它是什么?一乘三不是四。。。;我不知道为什么要使用
arrayList.stream()
,什么是arrayList
?
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]
}
}