本帖最后由 贾成龙 于 2012-8-27 21:41 编辑
/Mercha.java
public class Mercha {
private String comname ;//商品名称
private String comprice ;//商品价格
private String comnum ; //商品数量
//名称
public void setComname(String comname){
this.comname=comname;
}
public String getComname() {
return comname;
}
//价格
public void setComprice (String comprice){
this.comprice=comprice;
}
public String getComprice (){
return comprice ;
}
//商品数量
public void setComnum(String comnum){
this.comnum=comnum;
}
public String getComnum(){
return comnum;
}
}
//商品类
//Commodity
static Map<Object, Object> commodity = new HashMap<Object, Object>();// 储存商品
// ////添加数据
Mercha mer1 = new Mercha();
mer1.setComname("海尔");
mer1.setComprice("120.0");
mer1.setComnum("100");
// ////数据
Mercha mer2 = new Mercha();
mer2.setComname("大中");
mer2.setComprice("150.0");
mer2.setComnum("120");
// /////////数据
Mercha mer3 = new Mercha();
mer3.setComname("长虹");
mer3.setComprice("190.0");
mer3.setComnum("135");
commodity.put(mer1, mer1);
commodity.put(mer2, mer2);
commodity.put(mer3, mer3);
// 输出
do {
Mercha mer5 = new Mercha();// 用于将处理后的商品信息转交至支付中心的Map<>.
System.out.println(">>>>>>>>>>>>商品处理中心");
System.out.println("商品名称" + "\t\t" + "商品数量" + "\t\t" + "商品价格");
for (Object obj : commodity.keySet()) {
System.out.println(((Mercha) commodity.get(obj)).getComname()
+ "\t\t" + ((Mercha) commodity.get(obj)).getComnum()
+ "\t\t" + ((Mercha) commodity.get(obj)).getComprice());
}
//commodity.clear();// 输出之后,清空map<>,防止重复添加
for (Map.Entry<Object, Object> entry : commodity.entrySet()) {
// mer5.getComname()
commodiname = ((Mercha) entry.getKey()).getComname();// 商品名称
commodinum = mer4.getComnum();// 购买的数量<控制台输入>
commodiprice = ((Mercha) entry.getValue()).getComprice();// 商品价格
// 处理商品数量过程
String commodinums = ((Mercha) entry.getValue())
.getComnum();// 商品总数量<已定义>
commodinums_always = Integer.valueOf(commodinums)
.intValue();// 获得商品总数量<String转int>
commodinums_buy = Integer.valueOf(commodinum).intValue();// 购买数量<String转换为int>
commodinums_results = commodinums_always - commodinums_buy;// 获得已经售出后的商品数量<int>
commodinums_resultss = Integer
.toString(commodinums_results);// 将int转为String.
// 处理数量过程结束
if (mer4.getComname().equals(commodiname)
&& commodinums_buy <= commodinums_always
&& commodinums_buy > t.Minnum) {// 值比较:查找是否有相应商品,并且数量是否大于所要购买的数量
// 用一个对象接收上面的值.然后再将对象传入支付类中的map
mer5.setComname(commodiname);// 1.用对象存储名称
mer5.setComnum(commodinum);// 2.存储价格
mer5.setComprice(commodiprice);// 3.存储购买数量<控制台输入的值>
pay.pays.put(mer5, mer5);// 将上述信息放入支付类的map<>.
System.out.println("购买成功!");
mer6.setComname(commodiname);// 1.用对象存储名称
mer6.setComprice(commodiprice);// 2.存储价格
mer6.setComnum(commodinums_resultss);// 3.存储数量<已变化>
findname = true;// 找到商品,findname为真
}
}
假如要修改mer2的商品数量(因为购买后要减去相应数量再输出.[不能在迭代的时候修改数据]),如何先去掉mer2,然后在添加最新的mer6到map.求教高人,谢谢了、
|