我的代码都正确,就是添加同一商品出现两行,并且删除不了,谁有同样问题
大哥,你能讲下你的思路吗?我用你的删除方法是能删除了,但就是看不懂。并且还有一个小问题。。这个方法为什么没法调用重新计算总价格呀。。
我用老师的代码,不可以进行删除和增加,达不到效果,用你的,成功了。就是不怎么理解你的代码。强
直接 goods.remove(item);不更好吗 干嘛这么复杂
我终于发现问题了,原来是containsKey(item)的问题,还有item,改正如下
public boolean addGoodsInCart(Items item,int number)
{
int flag=0,num=0;
System.out.println("item="+item);
Set<Items> item1 = goods.keySet();
Iterator<Items> it = item1.iterator();
while(it.hasNext())
{
Items i = it.next();
System.out.println("i="+i);
if(i.getId() == item.getId())
{
num =goods.get(i);
goods.remove(i);
goods.put(item, num+number);
flag=1;
break; //错误点:记得寻找到对象以后要break;
}
}
if(flag == 0)
{
goods.put(item, number);
}
calTotalPrice();
return true;
}
//删除商品
public boolean removeGoodsInCart(Items item)
{
Set<Items> item1 = goods.keySet();
Iterator<Items> it = item1.iterator();
while(it.hasNext())
{
Items i = it.next();
if(i.getId() == item.getId())
{
goods.remove(i);
break; //错误点:记得寻找到对象以后要break;
}
}
calTotalPrice();//重新计算购物车总金额
return true;
}