логическое несоответствие между интерфейсами Set и SortedSet в Java [закрыто]

Я заметил логическое несоответствие между интерфейсами Set и SortedSet в Java.

SortedSet распознает различные объекты (методом equal ()) как равные, если они совпадают во время сравнения, но это логически неверно. Сравнение объектов должно отвечать только за порядок объектов.

Например: у меня может быть много продуктов, и я хочу отсортировать их по цене. В этом случае SortedSet не может содержать разные продукты с одинаковой ценой: [«соль», 0,5 $], [«молоко», 1 $], [«хлеб», 1 $], [«бананы», 2 $ ] В приведенном выше примере молоко будет заменено хлебом. В этом случае контракт унаследованного интерфейса Set будет нарушен, поскольку неравные объекты заменяют друг друга. Я прочитал JavaDoc из SortedSet и знаю, что это поведение хорошо документировано, но я думаю, что это логическая ошибка.

Как вы думаете, может быть, у вас уже есть подобные проблемы с Set и SortedSet?