我有一组数据,数据如下:
03010101 1.0% 2.0% 3.0% 4.0%
03010102 2.0% 2.0% 2.0% 2.0%
03010103 3.0% 2.0% 2.0% 2.0%
03020201 1.0% 2.0% 3.0% 4.0%
03020302 2.0% 2.0% 2.0% 2.0%
03020403 3.0% 2.0% 2.0% 2.0%
04030101 1.0% 2.0% 3.0% 4.0%
04040102 2.0% 2.0% 2.0% 2.0%
04050103 3.0% 2.0% 2.0% 2.0%
我现在的需求是按六位平均,按四位平均,按二位平均
(把第一列的前面六位相等的数分组,后面的值也按相等的相加,后面再除以相加条数):
030101这个前六位编码相等的有三条记录,后面对应的每一列值相加除以3
030202这个前六位编码相等的有一条记录,
030203这个前六位编码相等的有一条记录,
030204这个前六位编码相等的有一条记录,
所以按六位平均的话这个列表就只有四条记录
0302这个前四位编码相等的有三条记录,后面对应的每一列值相加除以3
0301这个前四位编码相等的有三条记录,后面对应的每一列值相加除以3
0403这个前四位编码相等的有一条记录,
0404这个前四位编码相等的有一条记录,
0405这个前四位编码相等的有一条记录,
所以按四位平均的话这个列表就只有四条记录
03这个前二位编码相等的有六条记录,后面对应的每一列值相加除以6
04这个前二位编码相等的有三条记录,后面对应的每一列值相加除以3
所以按二位平均的话这个列表就只有二条记录
这个问题我无法解决,希望大家帮帮我,比较急,先谢谢了!
如果非得这么做的话,每一条记录对应一个javabean,然后按位数匹配(自己想怎么匹配) 相同位数的放进一个List里,这个list 每一列的值除以list.size()就是相当于[color=red]030101这个前六位编码相等的有三条记录,后面对应的每一列值相加除以3 [/color]
然后将 计算后的数据放进一个新的list里,这样 就得到你要的结果了
03010101 1.0% 2.0% 3.0% 4.0%
03010102 2.0% 2.0% 2.0% 2.0%
03010103 3.0% 2.0% 2.0% 2.0%
03020201 1.0% 2.0% 3.0% 4.0%
03020302 2.0% 2.0% 2.0% 2.0%
03020403 3.0% 2.0% 2.0% 2.0%
04030101 1.0% 2.0% 3.0% 4.0%
04040102 2.0% 2.0% 2.0% 2.0%
04050103 3.0% 2.0% 2.0% 2.0%
这些数据是怎么来的?和你定义的需求完全不一致啊?