Java案例-- 购物车添加商品~~(Map集合)

题目要求:

         把商品加入购物车,第一次加入到购物车,该商品的数量会显示为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);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值