java二维数组分组求和,这不是关键主要输出是不要遍历输出,要怎么单个输出每个组的和,就是输出时说出三种家电各是多少,怎么输出?

新手上路,请多包涵

某门店销售小家电,其中第一季度每个月电饭煲的销售额为{5321,7632,4231},空气炸锅的销售额为{4325,6421,4453},榨汁机的销售额为{3214,3532,4352},求第一季度这三种小家电的销售额分别为多少?用Java二位数组写出来

阅读 1.7k
2 个回答

写个大概的思路,盲打多少会有点错误。

arr2 = [{5321,7632,4231},{4325,6421,4453},{3214,3532,4352}]
Map<String, Object> map = new HashMap<>();
for(int i = 0 ;i<arr2.length;i++){
    String index = 0;
    var  sum = 0;
    for(int j = 0 ;j<arr2[i].length ;j++){
        sum += arr2[i][i];
    }
    map.put(index,sum);
}

按照你的描述,这个二维数组第一维是三种小家电,第二维是每种小家家第一个季度三个月的销售额。要达到统计的目的,需要遍历累加。遍历二维数组,一般使用两个循环

第一个循环,遍历第一维,即三个小家电的数据。内嵌第二个循环,遍历第二维,即三个月的数据。由于需要累加,而且累加的值是第二维要遍历出来的每一个数值,所以需要在内循环之前初始化一个保存累加和的变量,在内循环中对这个变量进行累加,在内循环完成的时候使用这个变量。

这里说到的使用,可以是直接输出,也可以是放到一个容器中(列表或者数组)。

根据上面的描述,代码应该是写得出来了。下面给你一个用 stream 实现的方法(不太基础,仅供参考)

package playground;

import java.util.Arrays;

public class Solution {
    public static void main(String[] args) {
        int[][] data = { { 5321, 7632, 4231 }, { 4325, 6421, 4453 }, { 3214, 3532, 4352 } };
        Arrays.stream(data)
            .mapToInt(arr -> Arrays.stream(arr).sum())
            .forEach(System.out::println);
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题