Так что это больше вопрос «попытаться понять», чем вопрос «Мне нужно решение». Для задания мы попросили создать Список продуктов, которые имеют itemNumber
и price
, но только один из них, поэтому нет элемента с тем же itemNumber
. Я решил, что смогу создать набор и избавиться от проблемы с дубликатами. Но если я добавлю producta
1, 4.99 и productb
1, 2.99, оба продукта будут добавлены.Когда набор позволяет дублировать?
Означает ли это, что набор определяет, что эти продукты отличаются друг от друга, они имеют разную цену и поэтому могут быть добавлены в набор?
Какую настройку вы используете? – Eran
Wether or not a Set считает, что два объекта равны (обычно) в зависимости от реализации класса объектов hashCode и hashCode. Вы реализовали/переопределили эти 2 метода в своем классе Product? –
@NikRawlins, если у вас есть java.util.HashSet продукта (ов), вам нужно определить equals/hashcode. В противном случае (jdk-8 мудрый) hashcode вычисляется с помощью реализации masrsaliag xor shift, а hashcode - Identity hashcode - который, вероятно, не то, что вы хотите – Eugene