Build a wishlist. Adding a product puts it in the list, and the same product (productId) stays as a single entry even when added twice. Removing works too. Complete Wishlist.
Complete a plain-Java (no framework) Wishlist. The same product (by product number) stays a single entry even when added twice, different products are each kept, and removing works too. You practice verifying how a collection decides whether two items are the same.
When you put domain objects into a list or set, what matters is on what basis that collection decides whether two items are the same or different. If your notion of sameness lives in the content, you should trace how that basis is reflected in the code. Beyond adding different items, the habit of also checking the case of re-adding the same content as a new instance is the key. This problem deals with the area of how a collection decides whether two items are the same.