亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 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 關注
  • 254 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號