调用方法显示集合中的内容,每次调用输出的内容都会重复一遍,怎么改成每次只显示一遍呢

goods.initGoodsList();

public void initGoodsList() {
    Goods goods1=new Goods(1,"冰淇淋奶茶",new BigDecimal("11"),100);
    Goods goods2=new Goods(2,"四季奶青",new BigDecimal("12"),100);
    Goods goods3=new Goods(3,"黑糖宝藏茶",new BigDecimal("20"),100);
    Shop.goodsList.add(goods1);//商品加入集合
    Shop.goodsList.add(goods2);
    Shop.goodsList.add(goods3);
    for(Goods goods:Shop.goodsList) {
        System.out.println(goods);
    }

图片说明


图片说明

initGoodsList判断Shop.goodsList是有数据存在就退出处理。每次都new一遍,新对象肯定会存在重复。
还有个方式就是把Goods的equals方法重写,id相同就返回true,只是多次初始化,浪费资源

你这个方法里面,每次执行的时候都会在list集合中加一遍,所以会显示重复的!

在进入initGoodsList方法中,先给 Shop.goodsList清空,然后再去添加,就不会重复了