用JSP做的购物车,用MAP去掉了重复项,怎样获得去每个值去掉重复项多少次?急,!!
也就是怎么获取相同物品的数量? 急啊,! 求高手哥哥指点

解决方案 »

  1.   

    BookInfoService service=new BookInfoService();
    response.setContentType("text/html;charset=gbk");
    PrintWriter out = response.getWriter();
    HttpSession session=request.getSession();
    List<Integer> list=new ArrayList<Integer>();
        Integer id=Integer.parseInt(request.getParameter("bookid"));
       // list.add(id);
        out.print(list.size());
        BookInfo bookInfo=service.onlyBookInfo(id);
        cartItem item=new cartItem();
        item.setBookInfo(bookInfo);
    item.setCount(id);
         
        Map<Integer,cartItem> map;
        map=(Map<Integer,cartItem>)session.getAttribute("mbook");
        if(map==null)
        {
          map=new HashMap<Integer, cartItem>();
             session.setAttribute("mbook", map);  
        }
        map.put(id, item);
      

  2.   

    我个SetCount附一个正确的数量啊,我当前传的书籍id肯定不行啦
    我数据库没数量那一列
      

  3.   

    在javaBean中传一个count用来表示该商品的数量。点击一次商品count设置加1.初始值为0
      

  4.   

    BookInfoService service=new BookInfoService();
    response.setContentType("text/html;charset=gbk");
    PrintWriter out = response.getWriter();
    HttpSession session=request.getSession();
    List<Integer> list=new ArrayList<Integer>();
        Integer id=Integer.parseInt(request.getParameter("bookid"));
       // list.add(id);
        out.print(list.size());
        BookInfo bookInfo=service.onlyBookInfo(id);
        cartItem item=new cartItem();
        item.setBookInfo(bookInfo);
    item.setCount(id);
         
        Map<Integer,cartItem> map;
        map=(Map<Integer,cartItem>)session.getAttribute("mbook");
        if(map==null)
        {
          map=new HashMap<Integer, cartItem>();
             session.setAttribute("mbook", map);  
        }
        map.put(id, item);
      

  5.   


    Map<Integer,cartItem> map;
    map=(Map<Integer,cartItem>)session.getAttribute("mbook");//存购物车东西的
    if(map==null)
    {
    map=new HashMap<Integer, cartItem>();
    session.setAttribute("mbook", map);   
    }
    cartItem back_Item=cartItemmap.put(id, item);//put方法返回的value
    if(!back_Item=null){
    map.get(id).setsetCount(item.getCount()+back_Item.getCount());//如果添加时发现有重复,则count是原来的cartItem的count+新添加的cartItem 的count数。
    }
      

  6.   

    是这个意思吧,put的时候,如果里面没有就直接添加,如果有,新的添加进去,把久的挤出来了,数量就是新数量+久数量, 每添加一次就累加一次数量。
      

  7.   

    还有 
    1.你既然再往session里面放session.setAttribute("mbook", map); 
    那一旦操作了map,最好更新一下session
    2.cartItem 类名要大写
      

  8.   

    谢谢你!我的问题解决了,我忘了Map有个containsKey(key)是判断键是否存在的(true)
      

  9.   



      BookInfoService service=new BookInfoService();
    response.setContentType("text/html;charset=gbk");
    PrintWriter out = response.getWriter();
    HttpSession session=request.getSession();
        Integer id=Integer.parseInt(request.getParameter("bookid"));
        BookInfo bookInfo=service.onlyBookInfo(id);
        Map<Integer,cartItem> map;
        map=(Map<Integer,cartItem>)session.getAttribute("mbook");
        if(map==null)
        {
          map=new HashMap<Integer, cartItem>();
             session.setAttribute("mbook", map);  
        }
        if(!map.containsKey(id))
        {
            cartItem item=new cartItem();
          item.setBookInfo(bookInfo);
      item.setCount(0);
      map.put(id, item);
        }
        cartItem mm=(cartItem)map.get(id);
        cartItem item=new cartItem();
          item.setBookInfo(bookInfo);
          Integer idex=mm.getCount()+1;
          item.setCount(idex);
        map.put(id, item);
    我的代码