JavaWeb后台购物车类实现代码详解

购物车类分装了Item和数量的一个集合,还有商品的总金额

下面是购物车类的详细代码以及测试方法:

package com.wxd.shopping;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

//购物车

public class Cart {

//购买商品的集合

private HashMap goods;

//购物车的总金额

private double totalPrice;

//构造方法初始化数据

public Cart(){

goods=new HashMap();

totalPrice=0.0;

}

public HashMap getGoods() {

return goods;

}

public void setGoods(HashMap goods) {

this.goods = goods;

}

public double getTotalPrice() {

return totalPrice;

}

public void setTotalPrice(double totalPrice) {

this.totalPrice = totalPrice;

}

//添加商品进购物车的方法

public boolean addGoodsInCart(Item item,int number){

if(goods.containsKey(item)){

goods.put(item,goods.get(item)+number);

}else{

goods.put(item,number);

}

calTotalPrice();//重新计算购物车的总金额

return true;

}

//删除商品的方法

public boolean removeGoodsFromCart(Item item){

goods.remove(item);

calTotalPrice();//重新计算购物车的总金额

return true;

}

//统计购物车的总金额

public double calTotalPrice(){

double sum=0.0;

Set keys=goods.keySet();

Iterator iterator = keys.iterator();

while (iterator.hasNext()){

Item i = iterator.next();

sum+=i.getPrice()*goods.get(i);

}

this.setTotalPrice(sum);//设置购物车的总金额

return this.getTotalPrice();

}

//测试的main方法

public static void main(String[] args) {

//先创建两个商品对象

Item i1=new Item(1,"耐克","温州",300.0,500,"001.jpg");

Item i2=new Item(2,"阿迪","广州",500.0,500,"001.jpg");

Item i3=new Item(1,"耐克","温州",300.0,500,"001.jpg");

Cart c=new Cart();

c.addGoodsInCart(i1,1);

c.addGoodsInCart(i2,2);

//再次购买耐克鞋

c.addGoodsInCart(i3,3);

//遍历购买商品的集合

HashMap goods = c.getGoods();

Set> entries = goods.entrySet();

for(Map.Entry itemEntry:entries){

System.out.println(itemEntry.toString());

}

System.out.println("购物车总金额:"+c.getTotalPrice());

}

}

JavaWeb后台购物车类实现代码详解相关教程

Java购物车前端代码_JavaWeb后台购物车类实现代码详解相关推荐

  1. java random函数用法_JAVA的Random类的用法详解

    Random类主要用来生成随机数,本文详解介绍了Random类的用法,希望能帮到大家. Random类 (java.util) Random类中实现的随机算法是伪随机,也就是有规则的随机.在进行随机时 ...

  2. java dateutil 获取时间戳_java DateUtil工具类时间戳类型转换详解

    本文实例为大家分享了DateUtil工具类时间戳类型转换的具体代码,供大家参考,具体内容如下 package com.sinosoft.media.sms.util; import java.text ...

  3. java中用法实例_java中Calendar类用法实例详解

    本文实例讲述了java中Calendar类用法.分享给大家供大家参考,具体如下: java中的Calendar在开发中经常被忽略,这篇博客总结一下这个类,对后面项目中使用时期的时候有帮助. Calen ...

  4. Java中Character(类型char)类及类型详解

    1. java中char类型占2个字节.16位可以存放汉子,字母和数字占一个字节,一个字节8位,中文占2个字节,16位: 2. char类型赋值 char a='a'; //任意单个字符,加单引号. ...

  5. java web请求转发_Javaweb请求转发及重定向实现详解

    请求转发:在同一个controller将请求转发到另一个请求映射,请求地址不会发生改变 //请求转发 @RequestMapping("/testFoeward") //@Resp ...

  6. java 重启线程_java 可重启线程及线程池类的设计(详解)

    了解JAVA多线程编程的人都知道,要产生一个线程有两种方法,一是类直接继承Thread类并实现其run()方法:二是类实现Runnable接口并实现其run()方法,然后新建一个以该类为构造方法参数的 ...

  7. java后台验证不能为空_java validation 后台参数验证的使用详解

    一.前言 在后台开发过程中,对参数的校验成为开发环境不可缺少的一个环节.比如参数不能为null,email那么必须符合email的格式,如果手动进行if判断或者写正则表达式判断无意开发效率太慢,在时间 ...

  8. WEB后台--邮件和短信业务实现(包括Java一键实现、封装和异步)以及原理详解

    本来就打算针对一些固定的特别点的业务(QQ与网易邮件.拦截设计.短信.定时器等等)来进行记录以及解析原理,这些会比较零散记录在JavaWeb的分类里面,感兴趣的童鞋可以去看下. 有人问为什么要邮件短信 ...

  9. java的数组与Arrays类源码详解

    java的数组与Arrays类源码详解 java.util.Arrays 类是 JDK 提供的一个工具类,用来处理数组的各种方法,而且每个方法基本上都是静态方法,能直接通过类名Arrays调用. 类的 ...

  10. [万字长文]使用 React 重写学成在线前端项目 I 代码完整可运行,步骤有详解

    [万字长文]使用 React 重写学成在线前端项目 I 代码完整可运行,步骤有详解 准备工作 安装必备工具/库 nodejs React 脚手架 需要的 node 依赖包 分析需求 初始化项目 搭建框 ...

最新文章

  1. 从 Domino 7.x 升级到 Domino 8.0.1 后服务器性能下降
  2. LeetCode 430. Flatten a Multilevel Doubly Linked List
  3. Introduction to Cryto Crptocurrencies Lecture 1
  4. 汉字的ascii码值范围_ASCII代码
  5. 【LeetCode笔记】234. 回文链表(Java、快慢指针、链表)
  6. mysql当时读_Mysql事务以及四中隔离级别实例2以及InnoDB如何解决当时读的幻读问题...
  7. Ubuntu安装php
  8. 推荐一款日志切割神器!我常用~
  9. 智能优化算法:群居蜘蛛优化算法-附代码
  10. python ConfigParser模块 配置文件解析
  11. 400电话查询php,PHP 匹配电话,手机,400号码 函数 及正则。很管用。
  12. java for循环内执行多线程
  13. python程序实现rep后剪枝算法
  14. 服务器显示共享文件夹的图标,Win7共享文件夹上的小锁图标怎么关闭?
  15. # 你也可以在你的微信 or QQ头像添加小国旗了,超简单!
  16. 关于windows下的System32与SysWOW64两个文件夹
  17. 20200720《Flask进阶》——蓝本
  18. 《精英日课》第三季_2019年四月新书《九个工作谎言》_1工作是具体的,公司是虚拟的
  19. 90后歌单精选100首,我有歌,你有故事吗?
  20. android16进制编辑器,16进制编辑器app

热门文章

  1. js计算字典的个数_第11天:Python 字典
  2. cookie实现上次访问时间
  3. python编程正方形面积_编程里面的算法真的很难吗?
  4. matlab中频谱的实现,如何在MATLAB中实现频谱核函数?
  5. java删除指定文件后重新建立文件系统_java file 操作之创建、删除文件及文件夹...
  6. Power BI能否做帕累托分析
  7. 【Mybatis架构】Mapper映射文件中的#{}与${}
  8. hdu 5187 zhx's contest
  9. 关于Http请求后返回json乱码的问题
  10. ShenNiu.MVC管理系统