Я сделал ArrayList
типа CartItem
, в основном он хранит все CartItems
в одном списке.
Теперь, когда CartItem
уже добавлен, вместо того, чтобы снова добавить тот же CartItem
, он увеличит его количество на единицу, вместо того, чтобы снова добавить элемент в список.
public ArrayList<CartItem> Items = new ArrayList<CartItem>();
public void AddItem(int productId)
{
CartItem newItem = new CartItem(productId);
if (Items.equals(newItem))
{
System.out.println("equal");
for (CartItem item:Items)
{
if (item.Equals(newItem))
{
item.Quantity++;
return;
}
}
}
else
{
newItem.Quantity = 1;
Items.add(newItem);
}
}
Конструктор CartItem выглядит следующим образом
публичный CartItem (int productId)
{
this.ProductId = productId;
this.prod = new Product(productId);
this.Quantity =1;
}
Вместо показа, Книги, 3
его показ Книги 1, Книги 1, Книги 1
Функция CartItem.Equals (Object)
public boolean Equals(CartItem item)
{
if(item.prod.Id == this.prod.Id)
{
return true;
}
return false;
}