我需要将多个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();
答案 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对象(您没有向我们展示)。