为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Java Streams 将第一个元素乘以第二个元素

如何使用 Java Streams 将第一个元素乘以第二个元素

慕村9548890 2023-10-13 16:20:47
我想获取列表中当前元素下一个元素的乘积,但应该只使用 Java Streams api。Integer[] inputArray = new Integer[]{1, 3, 5, 7, 9} Integer[] outputArray = new Integer[]{4, 15, 35, 63}谢谢
查看完整描述

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]


查看完整回答
反对 回复 2023-10-13
?
蛊毒传说

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] 

    }

}

现场演示


查看完整回答
反对 回复 2023-10-13
  • 2 回答
  • 0 关注
  • 178 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信