gpt4 book ai didi

java - 使用 Java 8 流查找数组中对角线元素的总和

转载 作者:行者123 更新时间:2023-11-30 07:44:15 24 4
gpt4 key购买 nike

需要使用 Java 8 流找到各个对角线元素的总和。

2d Array - { 
{ 1, 2, 3 },
{ 5, 6, 7 },
{ 8, 2, 3 }
}

Output - Sum1 (1+6+3) = 10
Sum2 (3+6+8) = 17

我知道通过循环数组来做到这一点。这可以使用 Java 8 流完成吗?如果是,怎么办?

最佳答案

如果您创建数组索引的 IntStream,将每个索引映射到所需对角线的元素,然后对生成的 IntStream 求和,则可以轻松完成此操作:

public static void diagonalSums ()
{
int[][] arr = {{1, 2, 3},
{5, 6, 7},
{8, 2, 3}};
System.out.println("first " + IntStream.range(0,arr.length).map(i -> arr[i][i]).sum());
System.out.println("second " + IntStream.range(0,arr.length).map(i -> arr[i][arr.length-1-i]).sum());
}

输出:

first 10
second 17

关于java - 使用 Java 8 流查找数组中对角线元素的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52725378/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com