题目要求:
把商品加入购物车,第一次加入到购物车,该商品的数量会显示为1,
如果我们添加的是同一个店铺的同一件商品,购物车中该商品的数量会增加1。
如果添加的不是同一个店铺的商品不用,我们则认为不是同一件商品,添加到购物车的时候就会当做新商品添加。
请设计程序,完成将商品添加到购物车的需求.
//商品类
public class goods {
private String name;
private String shop;
private double price;
public goods() {
}
public goods(String name, String shop, double price) {
this.name = name;
this.shop = shop;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getShop() {
return shop;
}
public void setShop(String shop) {
this.shop = shop;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
@Override
public String toString() {
return "goods{" +
"name='" + name + '\'' +
", shop='" + shop + '\'' +
", price=" + price +
'}';
}
}
//测试类
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//1.创建购物车集合,Integer代表商品数量
Map<goods, Integer> maps = new HashMap<>();
//2. 先在购物车中手动添加商品
maps.put(new goods("杯子", "NBA店铺", 29.9), 1);
maps.put(new goods("裤子", "CBA店铺", 79.9), 1);
//3. 输入商品信息
System.out.println("请依次输入商品名称,店铺名称,价格,数量");
String name = sc.next();
String shop = sc.next();
double price = sc.nextDouble();
int num = sc.nextInt();
//4. 将输入信息封装成商品
goods G = new goods(name, shop, price);
//5. 获取所有商品集合
Set<goods> mapsKey = maps.keySet();
//6. 遍历商品集合
for (goods Good : mapsKey) {
//6.1 比较商品名称是否一样
if (Good.getName().equals(G.getName())) {
//6.2 比较店铺是否一样
if (Good.getShop().equals(G.getShop())) {
maps.put(Good, maps.get(Good) + num);
System.out.println("商品存在,数量加" + num);
break;
} else {
maps.put(G, num);
System.out.println("添加新商品成功");
break;
}
} else {
maps.put(G, num);
System.out.println("添加新商品成功");
break;
}
}
System.out.println(maps);
}
}