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();
// 找到对应的商品