niespójność logiczna między interfejsami Set i SortedSet w Javie [zamknięte]

Zauważyłem logiczną niezgodność między interfejsami Set i SortedSet w Javie.

SortedSet rozpoznaje różne obiekty (metodą equal ()) jako równe, jeśli są takie same podczas porównania, ale jest to logicznie niepoprawne. Porównywanie obiektów powinno odpowiadać tylko za kolejność obiektów.

Na przykład: Mogę mieć wiele produktów i chcę je posortować według ceny. W tym przypadku SortedSet nie może zawierać różnych produktów o tej samej cenie: [„sól”, 0,5 $], [„mleko”, 1 $], [„chleb”, 1 $], [„banany”, 2 $ ] W przykładzie powyżej mleko zostanie zastąpione chlebem. W tym przypadku umowa odziedziczonego interfejsu Set zostanie naruszona, ponieważ nierówne obiekty zastępują się wzajemnie. I red JavaDoc z SortedSet i wiem, że to zachowanie dobrze udokumentowane, ale myślę, że to logiczna porażka.

Jaka jest twoja opinia, może masz już podobne problemy z Set i SortedSet?

questionAnswers(3)

yourAnswerToTheQuestion