java List合并相同的项的问题?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java List合并相同的项的问题?相关的知识,希望对你有一定的参考价值。
我需要获得的结果是:10003314 0.0007
10003315 0.0001
就是把三个list中 '相同员工号' 的 '相同产品' 的两个百分比相乘后相加
即:10003314: 0.02*0.1+0.01*0.2+0.03*0.1=0.0007
下面是三个list,可以获取数据库中每个字段的值
List<Sale> sales=daos.findAll();
List<Product> products=daop.findAll();
List<BtAsp> btAsps=daob.findAll();
//btAsp(匹配员工号,10003314 匹配商品号或商品名称,111或苹果)
insert into btAsp values(1,10003314,111,'苹果',0.02);
insert into btAsp values(5,10003314,222,'香蕉',0.01);
insert into btAsp values(6,10003314,333,'橘子',0.03);
insert into btAsp values(2,10003315,200,'香蕉',0.01);
//product(匹配员工号,10003314 匹配商品号或商品名称,111或苹果)
insert into product values(1,10003314,111,'苹果1',0.1);
insert into product values(5,10003314,222,'香蕉1',0.2);
insert into product values(6,10003314,333,'橘子1',0.1);
insert into product values(2,10003315,200,'香蕉',0.1);
//sale(匹配员工号10003314)
insert into sale values(1,10003314,100,95,40,39,100,95,40,39);
insert into sale values(2,10003315,50,40,40,40,50,40,40,40);
似乎需要用到存储过程
这个我不会
但是如果拿到程序里面要方便许多
没条数据做处理就好了
用两个哈希表和一个链表处理
问题不大追问
能不能给我点简单代码,hashmap,map这块有点欠缺,烦劳.
追答我给你写个简单点的吧
首先把员工编号为10003314的btAsp的数据写入一个链表里面list lst = new ArrayList<Double>();
lst.add(0.02);
lst.add(0.01);
lst.add(0.03);
HashMap map1 = new HashMap();
map.put("10003314", lst);
就像这样把btAsp product表里面的数据放进hashmap里面
然后进行计算就好了
额这个你研究研究hashmap和arraylist吧
逻辑就是冗长一点
一点一点处理就能出来
暂时没有时间帮你写
工作比较忙
又看了2个多小时,试了好多遍,还是没有解决.请你有空的时候写一下好吗?感激不尽
把东西放进hashmap后就不会了
我的想法是先1次筛选得到相同的员工
2次筛选得到相同的产品
然后把相同产品的百分比做算数运算
感觉一个key+一个value不够用了.....
有点浆糊
我的qq:929415393 请赐教
一个key对应一个list
一个ket对应一个list
一个list
一个key对应一个值那肯定不行了
能否给我些代码?我实在想不出怎么做了
追答if (map.containsKey(bean.getKey()))
map.put(bean.getKey(), map.get(bean.getKey())+ bean.getCount());
else
map.put(bean.getKey(), bean.getCount());
你根据自己的实际情况修改下吧
代码中的bean是什么?getkey好像不是map里的方法
追答这么好的思路,你也不给个分
以上是关于java List合并相同的项的问题?的主要内容,如果未能解决你的问题,请参考以下文章