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

在项目中遇到一个问题需要对 list中不同品牌的数据进行统计 ,该怎么实现?

在项目中遇到一个问题需要对 list中不同品牌的数据进行统计 ,该怎么实现?

MMTTMM 2023-04-21 17:13:44
list 结果集如下:      阿迪达斯    运动鞋     2      阿迪达斯    运动服     3      阿迪达斯    跑鞋       4      耐克        包         5      耐克        运动裤     6 我想要的list中的结果集      阿迪达斯    运动鞋      2          阿迪达斯    运动服      3      阿迪达斯    跑鞋        4      合计                    9      耐克        包          5      耐克        运动裤      6      合计                   11 该怎么从list中处理?????
查看完整描述

3 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

import java.util.ArrayList;  

import java.util.List;  

  

public class Test {  

    public static void main(String[] args) {  

        List<String[]> resultList = new ArrayList<String[]>();  

        List<String[]> list = new ArrayList<String[]>();  

        String[][] str = { { "阿迪达斯", "运动鞋", "2" }, { "阿迪达斯", "运动服", "3" },  

                { "阿迪达斯", "跑鞋", "4" }, { "耐克", "包", "5" },  

                { "耐克", "运动裤", "6" }, { "锐步", "包", "1" }, { "锐步", "运动裤", "6" } };  

        for (int i = 0; i < str.length; i++) {  

            list.add(str[i]);  

        }  

        int count = Integer.parseInt(list.get(0)[2]);  

  

        resultList.add(list.get(0));  

        for (int i = 0; i < list.size() - 1; i++) {  

            if (list.get(i)[0] == list.get(i + 1)[0]) {  

                count += Integer.parseInt(list.get(i + 1)[2]);  

                resultList.add(list.get(i + 1));  

            } else {  

                String[] temp = new String[3];  

                temp[0] = "合计";  

                temp[1] = "";  

                temp[2] = String.valueOf(count);  

                resultList.add(temp);  

                resultList.add(list.get(i + 1));  

                count = Integer.parseInt(list.get(i + 1)[2]);  

            }  

        }  

        String[] temp = new String[3];  

        temp[0] = "合计";  

        temp[1] = "";  

        temp[2] = String.valueOf(count);  

        resultList.add(temp);  

    }  

}  

仅供参考

查看完整回答
反对 回复 2023-04-23
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

这个有个高效的方法,就遍历一遍list就可以了。 
配合Map 
用一个域模型类 T 来描述你的产品,用一个boolean kinsmanship(T t)来做品牌匹配,然后用域模型的 品牌字段做Map 的key, 一个List做value  因为这个list中需要存储不同类型的数据,不要使用泛型就可以了,你可以在list的第0个位置存放一个list,这个list里面存放所有的域模型  第一个位置存放统计之后总计值。 
思路就差不多了,感觉还是比较清晰的。 

遍历一遍就可以统计出所有了。

查看完整回答
反对 回复 2023-04-23
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

阿迪达斯    运动鞋     2 
     耐克        运动裤     6 
按此格式定义一个class 
class Goods 
    { 
        String brand; 
        String category; 
        int stock; 
    } 
把相应的object按照brand的不同分别放在不同的list里面, 
再用不同的brand作为key,将list放到map中 
遍历的时候,可以根据不同的brand取出相应的list,遍历出list中的goods,同时累计该brand下的每个goods的stock,即为该brand的合计数量

查看完整回答
反对 回复 2023-04-23
  • 3 回答
  • 0 关注
  • 95 浏览

添加回答

举报

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