これは「解決する必要がある」という質問よりも「理解しようとする」質問のほうが多いです。割り当ての場合、itemNumber
とprice
の商品リストを作成するよう依頼されましたが、それぞれが1つのみで、同じitemNumber
の商品はありません。私はセットを作ることができたと思って、それは重複の問題を取り除くでしょう。しかし、producta
1、4.99およびproductb
1、2.99を追加すると、両方の製品が追加されます。セットは重複をいつ許可しますか?
これは、これらの製品が異なる価格であると判断することを意味しますか?つまり、価格が異なるため、セットに追加することができますか?
どのようなセットの実装を使用していますか? – Eran
Wetherであるかどうかにかかわらず、2つのオブジェクトが等しいとみなすSetは、オブジェクトクラスのequalsおよびhashCode実装に依存します(通常は)。 Productクラスの2つのメソッドを実装/オーバーライドしましたか? –
@NikRawlinsあなたがequals/hashcodeを定義する必要があるProductのjava.util.HashSetを持っている場合。そうでなければ(jdk-8賢明な)ハッシュコードはmasrsaliag xor shiftの実装で計算され、ハッシュコードはアイデンティティハッシュコードです - これはおそらくあなたが望むものではありません – Eugene