arrayList添加对象

时间:2014-03-22 12:40:32

标签: java arraylist

我需要将多个Cart对象添加到arraylist但是当添加最后一个对象时它会覆盖arrayList中的前一个对象如何解决这个问题

    public class CartService {
    List<Cart> list=new ArrayList<Cart>();

public void addToList(Cart cart,String productName,double prize,int quantity){
        cart.setProductName(productName);
        cart.setPrize(prize);
        cart.setQuantity(quantity);
        list.add(cart);
}
public void dispalyList(){
    for(Cart c:list){
        System.out.println("------------------------------------");
        System.out.println(c.getProductName());
        System.out.println(c.getPrize());
        System.out.println(c.getQuantity());
    }
   }
    }

在其他班级打电话

    CartService cartService=new CartService();
    Cart cart=new Cart();

添加到arraylist

    cartService.addToList(cart,"car",5.5,2);

显示arraylist

     cartService.dispalyList();

2 个答案:

答案 0 :(得分:1)

可能会发生这种情况,因为您在Cart方法中传递了addToList的相同实例。

尝试将代码修改为

public void addToList(String productName,double prize,int quantity){
         Cart cart = new Cart();//assuming default constructor exists
        cart.setProductName(productName);
        cart.setPrize(prize);
        cart.setQuantity(quantity);
        list.add(cart);
    }

答案 1 :(得分:0)

您可能尝试在循环中添加Cart对象,而不是在循环的每次迭代中创建 new Cart对象,而是使用相同的购物车对象。这会覆盖之前的所有用途。解决方案:在循环中创建一个新的Cart对象(您没有向我们展示)。