java集合框架代码 java集合框架包含哪些接口和类( 九 )


this.sdescription = sdescription;
}
}
public class OrderItemBean {
private McBean mcbean; //商品
private int count; //商品数量
public McBean getMcbean() {
return mcbean;
}
public void setMcbean(McBean mcbean) {
this.mcbean = mcbean;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class ShoppingCar {
private double totalPrice; //购物车所有商品总价格
private int totalCount; //购物车所有商品数量
private MapInteger,OrderItemBean itemMap; //商品编号与订单项的键值对
public ShoppingCar(){
//初始化购物车
itemMap = new HashMapInteger, OrderItemBean();
Database db = new Database();
McBean bean = new McBean();
OrderItemBean orderItem1 = new OrderItemBean();
OrderItemBean orderItem2 = new OrderItemBean();
OrderItemBean orderItem3 = new OrderItemBean();
bean = db.getMcBean(1);
orderItem1.setMcbean(bean);
orderItem1.setCount(2);
bean = db.getMcBean(2);
orderItem2.setMcbean(bean);
orderItem2.setCount(5);
bean = db.getMcBean(4);
orderItem3.setMcbean(bean);
orderItem3.setCount(3);
itemMap.put(1, orderItem1);
itemMap.put(2, orderItem2);
itemMap.put(4, orderItem3);
totalCount = itemMap.size();
totalPrice = 0;
Set set = itemMap.entrySet();
Iterator i = set.iterator();
while(i.hasNext()){
Map.EntryInteger, OrderItemBean entry1=(Map.EntryInteger, OrderItemBean)i.next();
totalPrice += entry1.getValue().getCount() * entry1.getValue().getMcbean().getNprice();
}
}
public void buy(int nid){
//如果该商品是第一次购买,商品的信息从数据库获取,数据库的模拟代
//码见附录 。itemMap增加一对键值对 。
//如果不是第一次购买,则通过商品编号找到对应的定单项,然后更新定
//单项的商品数量 。
//不管是否第一次购买,都得更新购物车的总价格和总数量 。
Database db = new Database();
McBean mcBean = new McBean();
OrderItemBean orderItem = new OrderItemBean();
if(itemMap.get(nid) == null) {
mcBean = db.getMcBean(nid);
orderItem.setMcbean(mcBean);
orderItem.setCount(1);
itemMap.put(nid, orderItem);
} else {
orderItem = itemMap.get(nid);
orderItem.setCount(orderItem.getCount() + 1);
}
totalCount = itemMap.size();
totalPrice = 0;
Set set = itemMap.entrySet();
Iterator i = set.iterator();
while(i.hasNext()){
Map.EntryInteger, OrderItemBean entry1=(Map.EntryInteger, OrderItemBean)i.next();
totalPrice += entry1.getValue().getCount() * entry1.getValue().getMcbean().getNprice();
}
}
public void delete(int nid){
//通过商品编号删除的对应的定单项,然后从更新购物车的总价格和总数量 。
itemMap.remove(nid);
totalCount = itemMap.size();
totalPrice = 0;
Set set = itemMap.entrySet();
Iterator i = set.iterator();
while(i.hasNext()){
Map.EntryInteger, OrderItemBean entry1=(Map.EntryInteger, OrderItemBean)i.next();
totalPrice += entry1.getValue().getCount() * entry1.getValue().getMcbean().getNprice();
}
}
public void update(int nid, int count){
///通过商品编号找到对应的对应的定单项 , 修改商品数量 。然后从更新购物车的总价格和总数量 。
OrderItemBean orderItem = new OrderItemBean();
orderItem = itemMap.get(nid);
orderItem.setCount(count);
totalCount = itemMap.size();
totalPrice = 0;
Set set = itemMap.entrySet();