商品 数量 价格 送货地点(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排序的对象组?)
}
}
如果有简单的代码给我一些提示,将不胜感谢!
8 个解决方案
#1
Map集合本身无序,所以即使你按顺序加入元素都不能
保证Iterator 出来的还是原来顺序,更不用说对其进行排序了。
保证Iterator 出来的还是原来顺序,更不用说对其进行排序了。
#2
那么如何实现按照商品浏览购物车内容,而在写入数据库时对应每个送货地点(shopid)生成不同的单据,有什么更好的办法吗?
现在购物车的信息是放在session里的呀
现在购物车的信息是放在session里的呀
#3
代码是死的 人是活的!
应该先考虑我存什么东西 后面生成单的时候需要什么数据 这样一步一步反复推敲一下 再灵活运用你所熟悉的java数据结构来实现你的设想!
如果跟数据库有关的话 还要充分利用数据库的优点和好处!
相信到后面你就知道 该怎么做了!
应该先考虑我存什么东西 后面生成单的时候需要什么数据 这样一步一步反复推敲一下 再灵活运用你所熟悉的java数据结构来实现你的设想!
如果跟数据库有关的话 还要充分利用数据库的优点和好处!
相信到后面你就知道 该怎么做了!
#4
到后面就来不及了!
第2次做项目,第1次做设计,
本周就要写出设计,
请各位给我支个招吧
至于“我存什么东西 后面生成单的时候需要什么数据”
显示给用户并存入session的hashmap:
商品1 数量1 送货地点1
商品2 数量2 送货地点1
商品3 数量3 送货地点2...
而写入数据库的要求是,一次购买针对一个送货地点生成一张单据,一个单据里面包含若干商品,
即 送货地点1生成1张单据,包含商品1和商品2
送货地点2生成1张单据,包含商品3...
我实在是想不出什么太好的办法了,你们有什么好办法就说出来吧!!!
第2次做项目,第1次做设计,
本周就要写出设计,
请各位给我支个招吧
至于“我存什么东西 后面生成单的时候需要什么数据”
显示给用户并存入session的hashmap:
商品1 数量1 送货地点1
商品2 数量2 送货地点1
商品3 数量3 送货地点2...
而写入数据库的要求是,一次购买针对一个送货地点生成一张单据,一个单据里面包含若干商品,
即 送货地点1生成1张单据,包含商品1和商品2
送货地点2生成1张单据,包含商品3...
我实在是想不出什么太好的办法了,你们有什么好办法就说出来吧!!!
#5
这个容易的,我的方法可能有点苯,但是解决问题了。
首先,[ 将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.
#6
这个容易的,我的方法可能有点苯,但是解决问题了。
首先,[ 将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.
#7
谢谢楼上的,我想了个不用排序的方法,
应该可以实现:)
应该可以实现:)
#8
谢谢楼上的,我想了个不用排序的方法,
应该可以实现:)
应该可以实现:)
#1
Map集合本身无序,所以即使你按顺序加入元素都不能
保证Iterator 出来的还是原来顺序,更不用说对其进行排序了。
保证Iterator 出来的还是原来顺序,更不用说对其进行排序了。
#2
那么如何实现按照商品浏览购物车内容,而在写入数据库时对应每个送货地点(shopid)生成不同的单据,有什么更好的办法吗?
现在购物车的信息是放在session里的呀
现在购物车的信息是放在session里的呀
#3
代码是死的 人是活的!
应该先考虑我存什么东西 后面生成单的时候需要什么数据 这样一步一步反复推敲一下 再灵活运用你所熟悉的java数据结构来实现你的设想!
如果跟数据库有关的话 还要充分利用数据库的优点和好处!
相信到后面你就知道 该怎么做了!
应该先考虑我存什么东西 后面生成单的时候需要什么数据 这样一步一步反复推敲一下 再灵活运用你所熟悉的java数据结构来实现你的设想!
如果跟数据库有关的话 还要充分利用数据库的优点和好处!
相信到后面你就知道 该怎么做了!
#4
到后面就来不及了!
第2次做项目,第1次做设计,
本周就要写出设计,
请各位给我支个招吧
至于“我存什么东西 后面生成单的时候需要什么数据”
显示给用户并存入session的hashmap:
商品1 数量1 送货地点1
商品2 数量2 送货地点1
商品3 数量3 送货地点2...
而写入数据库的要求是,一次购买针对一个送货地点生成一张单据,一个单据里面包含若干商品,
即 送货地点1生成1张单据,包含商品1和商品2
送货地点2生成1张单据,包含商品3...
我实在是想不出什么太好的办法了,你们有什么好办法就说出来吧!!!
第2次做项目,第1次做设计,
本周就要写出设计,
请各位给我支个招吧
至于“我存什么东西 后面生成单的时候需要什么数据”
显示给用户并存入session的hashmap:
商品1 数量1 送货地点1
商品2 数量2 送货地点1
商品3 数量3 送货地点2...
而写入数据库的要求是,一次购买针对一个送货地点生成一张单据,一个单据里面包含若干商品,
即 送货地点1生成1张单据,包含商品1和商品2
送货地点2生成1张单据,包含商品3...
我实在是想不出什么太好的办法了,你们有什么好办法就说出来吧!!!
#5
这个容易的,我的方法可能有点苯,但是解决问题了。
首先,[ 将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.
#6
这个容易的,我的方法可能有点苯,但是解决问题了。
首先,[ 将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.
#7
谢谢楼上的,我想了个不用排序的方法,
应该可以实现:)
应该可以实现:)
#8
谢谢楼上的,我想了个不用排序的方法,
应该可以实现:)
应该可以实现:)