使用java流的列表<List>中的所有对角线元素的总和<Integer>?



如何使用java流获取列表列表List<List<Integer>>中所有对角元素的和?

int diagonalSum(List<List<Integer>> matrix) {
int n = matrix.size();
return IntStream.range(0, n)
.map(i -> i < matrix.get(i).size() ? matrix.get(i).get(i).intValue() : 0)
.sum();
}

就像for循环一样:IntStream.range代表一行&列索引。可以添加CCD_ 3,但必须衡量其是否更有效。

谢谢Joop,看起来我在尝试另一个方向,尝试了List流,但这个是干净的。最后一个解决方案是

IntStream.range(0, test.size()).map(i -> test.get(i).get(i)).sum();

最新更新