当前位置: 技术问答>java相关
不知道有没有人来救救我?!---请各位好心的帮主都来看一看吧
来源: 互联网 发布时间:2015-07-24
本文导语: 前提:用户选择商品进行购买,购物篮呈现为: 商品 数量 价格 送货地点(shopid,选择框)... 购买信息按商品ID-销售单对象(键-值对)组成hashmap放在Session当中, 因为每个shopid对应1条销售总单记录,销售总单...
前提:用户选择商品进行购买,购物篮呈现为:
商品 数量 价格 送货地点(shopid,选择框)...
购买信息按商品ID-销售单对象(键-值对)组成hashmap放在Session当中,
因为每个shopid对应1条销售总单记录,销售总单下又有细单保存购买的不同商品信息。
所以提交定单的时候需要将销售单对象重新按照送货地点(shopid)进行排序分组,
插入数据表中,并且对应每个送货地点(shopid)生成不同的单据。
问题是:
我用
HashMap map = (HashMap)session.getAttribute("buygoods"); //map的键-值对为:商品ID-销售单对象
java.util.Iterator iter = map.values().iterator();
while(iter.hasNext()){
...
将iter对象按其属性之一shopid重新排序分组,该怎么做?(构造新的按shopid排序的对象组?)
}
}
如果有简单的代码给我一些提示,将不胜感谢!
商品 数量 价格 送货地点(shopid,选择框)...
购买信息按商品ID-销售单对象(键-值对)组成hashmap放在Session当中,
因为每个shopid对应1条销售总单记录,销售总单下又有细单保存购买的不同商品信息。
所以提交定单的时候需要将销售单对象重新按照送货地点(shopid)进行排序分组,
插入数据表中,并且对应每个送货地点(shopid)生成不同的单据。
问题是:
我用
HashMap map = (HashMap)session.getAttribute("buygoods"); //map的键-值对为:商品ID-销售单对象
java.util.Iterator iter = map.values().iterator();
while(iter.hasNext()){
...
将iter对象按其属性之一shopid重新排序分组,该怎么做?(构造新的按shopid排序的对象组?)
}
}
如果有简单的代码给我一些提示,将不胜感谢!
|
这个容易的,我的方法可能有点苯,但是解决问题了。
首先,[ 将iter对象按其属性之一shopid重新排序分组,该怎么做?(构造新的按shopid排序的对象组?)] 我认为可以用 TreeMap 来实现。
TreeMap tMap; // 用来放结果,keys 会自动排序的。
shop_id(1..n) -> vector { 商品1, 商品2 }
// 省略了得到 商品ID-销售单对象 的过程
for (;;){
type_shop_id t_shop_id = 销售单对象.shop_id;
if ( tMap.containKeys(t_shop_id) ) {
// shop_id 已经有了。
Vector v=(Vector)tMap.get(t_shop_id);
v.add(商品ID);
}else {
// shop_id 第一次出现。
tMap.put(t_shop_id, (new Vector() v).add(商品ID) );
}
}
以上仅仅是伪代码,TreeMap 可以好好利用,你可以参考一下java api.
首先,[ 将iter对象按其属性之一shopid重新排序分组,该怎么做?(构造新的按shopid排序的对象组?)] 我认为可以用 TreeMap 来实现。
TreeMap tMap; // 用来放结果,keys 会自动排序的。
shop_id(1..n) -> vector { 商品1, 商品2 }
// 省略了得到 商品ID-销售单对象 的过程
for (;;){
type_shop_id t_shop_id = 销售单对象.shop_id;
if ( tMap.containKeys(t_shop_id) ) {
// shop_id 已经有了。
Vector v=(Vector)tMap.get(t_shop_id);
v.add(商品ID);
}else {
// shop_id 第一次出现。
tMap.put(t_shop_id, (new Vector() v).add(商品ID) );
}
}
以上仅仅是伪代码,TreeMap 可以好好利用,你可以参考一下java api.