问答详情
源自:2-12 商品删除

关于显示和删除

我的代码都正确,就是添加同一商品出现两行,并且删除不了,谁有同样问题

提问者:changyaoguo 2016-03-18 16:43

个回答

  • 慕粉1473922411
    2018-09-26 17:33:33

    大哥,你能讲下你的思路吗?我用你的删除方法是能删除了,但就是看不懂。并且还有一个小问题。。这个方法为什么没法调用重新计算总价格呀。。

  • 路小弟
    2016-12-01 20:49:27

    我用老师的代码,不可以进行删除和增加,达不到效果,用你的,成功了。就是不怎么理解你的代码。强

  • zzzhaofq
    2016-06-24 22:16:26

    直接 goods.remove(item);不更好吗   干嘛这么复杂

  • changyaoguo
    2016-03-18 23:37:18

    我终于发现问题了,原来是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;

    }