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

list 结果集如下: 

     阿迪达斯    运动鞋     2 
     阿迪达斯    运动服     3 
     阿迪达斯    跑鞋       4 
     耐克        包         5 
     耐克        运动裤     6 



我想要的list中的结果集 
     阿迪达斯    运动鞋      2     
     阿迪达斯    运动服      3 
     阿迪达斯    跑鞋        4 
     合计                    9 
     耐克        包          5 
     耐克        运动裤      6 
     合计                   11 

该怎么从list中处理?????

MMTTMM
浏览 96回答 3
3回答

回首忆惘然

import&nbsp;java.util.ArrayList;&nbsp;&nbsp;import&nbsp;java.util.List;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;class&nbsp;Test&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;void&nbsp;main(String[]&nbsp;args)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List<String[]>&nbsp;resultList&nbsp;=&nbsp;new&nbsp;ArrayList<String[]>();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List<String[]>&nbsp;list&nbsp;=&nbsp;new&nbsp;ArrayList<String[]>();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[][]&nbsp;str&nbsp;=&nbsp;{&nbsp;{&nbsp;"阿迪达斯",&nbsp;"运动鞋",&nbsp;"2"&nbsp;},&nbsp;{&nbsp;"阿迪达斯",&nbsp;"运动服",&nbsp;"3"&nbsp;},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;"阿迪达斯",&nbsp;"跑鞋",&nbsp;"4"&nbsp;},&nbsp;{&nbsp;"耐克",&nbsp;"包",&nbsp;"5"&nbsp;},&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;"耐克",&nbsp;"运动裤",&nbsp;"6"&nbsp;},&nbsp;{&nbsp;"锐步",&nbsp;"包",&nbsp;"1"&nbsp;},&nbsp;{&nbsp;"锐步",&nbsp;"运动裤",&nbsp;"6"&nbsp;}&nbsp;};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;str.length;&nbsp;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list.add(str[i]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;count&nbsp;=&nbsp;Integer.parseInt(list.get(0)[2]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultList.add(list.get(0));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;list.size()&nbsp;-&nbsp;1;&nbsp;i++)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(list.get(i)[0]&nbsp;==&nbsp;list.get(i&nbsp;+&nbsp;1)[0])&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;+=&nbsp;Integer.parseInt(list.get(i&nbsp;+&nbsp;1)[2]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultList.add(list.get(i&nbsp;+&nbsp;1));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;temp&nbsp;=&nbsp;new&nbsp;String[3];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp[0]&nbsp;=&nbsp;"合计";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp[1]&nbsp;=&nbsp;"";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp[2]&nbsp;=&nbsp;String.valueOf(count);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultList.add(temp);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultList.add(list.get(i&nbsp;+&nbsp;1));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;=&nbsp;Integer.parseInt(list.get(i&nbsp;+&nbsp;1)[2]);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String[]&nbsp;temp&nbsp;=&nbsp;new&nbsp;String[3];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp[0]&nbsp;=&nbsp;"合计";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp[1]&nbsp;=&nbsp;"";&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;temp[2]&nbsp;=&nbsp;String.valueOf(count);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;resultList.add(temp);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;}&nbsp;&nbsp;仅供参考

繁星点点滴滴

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

杨__羊羊

阿迪达斯&nbsp;&nbsp;&nbsp; 运动鞋&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 耐克&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 运动裤&nbsp;&nbsp;&nbsp;&nbsp; 6&nbsp;按此格式定义一个class&nbsp;class Goods&nbsp;&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String brand;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String category;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int stock;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;把相应的object按照brand的不同分别放在不同的list里面,&nbsp;再用不同的brand作为key,将list放到map中&nbsp;遍历的时候,可以根据不同的brand取出相应的list,遍历出list中的goods,同时累计该brand下的每个goods的stock,即为该brand的合计数量
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java