Java中的ArrayList

Java中的ArrayList,java,jsp,arraylist,shopping-cart,Java,Jsp,Arraylist,Shopping Cart,我要做的是检查ArrayList中是否存在相同的对象,并将其数量更新为1。但是,代码将再次将同一项添加到列表中,并将其数量设置为1 一个项目就是一个类 public class Item{ public int Id; public String Description; public int Price; public Item(int id) { this.Id = id; switch (id) { case 1:

我要做的是检查ArrayList中是否存在相同的对象,并将其数量更新为1。但是,代码将再次将同一项添加到列表中,并将其数量设置为1

一个项目就是一个类

public class Item{
    public int Id;
    public String Description;
    public int Price;

    public Item(int id)
    {
    this.Id = id;
    switch (id) {
        case 1:
            this.Price = 19.95f;
            this.Description = "Shoes";
            break;
        case 2:
            this.Price = 9.95f;
            this.Description = "Shirt";
            break;
        case 3:
            this.Price = 14.95f;
            this.Description = "Pants";
            break;
    }
}
创建CartItem类来保存该项目及其数量

public class CartItem{
    public Item itm;
    public int Quantity;

        public CartItem(int itemId)
        {
        this.itm = new Item(itemId)
        this.Quantity=1;
        }

        public boolean Equal(CartItem item)
        {

        final CartItem a = new CartItem(item.Id);
        if (this.itm.Id != a.ProductId)
        {
            return false;
        }
        return true;
        }
}
ShoppingCart类,它存储CartItems列表,并包含将项目添加到列表中的方法

  public ShoppingCart{

        ArrayList<CartItem> Items = new ArrayList<CartItem>();

        public void AddItem(int productId)
        {
        CartItem newItem = new CartItem(productId);

          if (Items.equals(newItem))
          {
            for (CartItem item:Items)
            {
                  if (item.Equal(newItem))
                  {
                    item.Quantity++;
                    return;
            }
          }

          else
          {
            newItem.Quantity = 1;
            Items.add(newItem);
          }
        }
  }
公共购物车{
ArrayList Items=新建ArrayList();
公共无效附加项(int productId)
{
CartItem newItem=新的CartItem(productId);
if(Items.equals(newItem))
{
用于(CartItem:Items)
{
如果(项目相等(新项目))
{
项目.数量++;
返回;
}
}
其他的
{
newItem.Quantity=1;
项目。添加(新项目);
}
}
}
当我向购物车添加项目时,它会将相同的项目重复到列表中,而不是更新其数量。整个问题是,我的代码无法检查ShoppingCart类的CartItem列表中是否存在相同的项目

书籍,1 书籍,1 书籍,1

而不是期望的输出

书籍,3