Java购物车

本文介绍了如何使用Java实现一个简单的购物车系统,包括添加商品、删除商品、修改商品数量和显示购物车内容等功能。购物车通过ArrayList或HashMap存储购物项,并按商品总价升序展示。
摘要由CSDN通过智能技术生成

1. 创建购物车实体类,模拟购物车功能(内部使用HashMap

需求:

1) 添加商品到购物车(输入商品的编号和数量)

2) 删除商品(删除购物车中的指定购物项)

3) 修改商品(修改商品的数量)

4) 显示所购买的商品信息(按购买商品的总价进行升序显示)


之前老师说了两个方法,所以我就两个方法都写上来。

首先是不用HashMap的


测试类
public class Test {


public static void main(String[] args) {
       TaoBao bao = new TaoBao();
       bao.mainMenu();
}


}

//购物项(商品和购买的数量的组成)

public class CartItem {
private Product product;//商品
private int amount;// 商品数量


public Product getProduct() {
return product;
}


public void setProduct(Product product) {
this.product = product;
}


public int getAmount() {
return amount;
}


public void setAmount(int amount) {
this.amount = amount;
}


public CartItem(Product product, int amount) {
super();
this.product = product;
this.amount = amount;
}


// 小计
public double getSubTotal() {
return product.getPrice() * amount;
}


@Override
public String toString() {
return "CartItem [id=" + product.getId() +", name="+ product.getName()+", price="+product.getPrice() +", amount=" + amount +", 小计=" + getSubTotal()+ "]";
}




}

//商品类

public class Product {
private String id;// 商品编号
private String name;// 商品名字
private double price;// 商品单价


public String getId() {
return id;
}


public void setId(String id) {
this.id = id;
}


public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


public double getPrice() {
return price;
}


public void setPrice(double price) {
this.price = price;
}


public Product(String id, String name, double price) {
super();
this.id = id;
this.name = name;
this.price = price;
}



}

//购物车类

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;


public class ShoppingCart {
private ArrayList<CartItem> cart = null;//购物项的集合


public ShoppingCart() {
cart = new ArrayList<>();
}


// 添加购物项至购物车
public void addItem(CartItem item) {
// 两种可能.1.购物项已经存在,只要修改数量 2.购物项中不存在,直接添加新的购物项
if (item != null) {
for (int i = 0; i < cart.size(); i++) {
// 取出购物车中的购物项中商品id
String cid = cart.get(i).getProduct().getId();
String id = item.getProduct().getId();
// 代表已经存在
if (cid.equals(id)) {
// 修改购物项的数量
cart.get(i).setAmount(cart.get(i).getAmount() + item.getAmount());
return;
}
}


cart.add(item);// 把新的购物项添加到购物车中
}
}


// 删除购物车中的指定购物项(根据商品编号来删除)
public boolean delItem(String id) {
boolean flag = false;// 没删除成功,没有对象的商品在购物车
for (int i = 0; i < cart.size(); i++) {
// 取出购物车中的购物项中商品id
String cid = cart.get(i).getProduct().getId();
// 找到对应的商品

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值