inconsistência lógica entre as interfaces Set e SortedSet em Java [closed]

Percebi uma inconsistência lógica entre as interfaces Set e SortedSet em Java.

SortedSet reconhece objetos diferentes (pelo método equal ()) como iguais se eles forem os mesmos durante a comparação, mas está logicamente incorreto. A comparação de objetos deve ser responsável apenas pela ordem dos objetos.

Por exemplo: posso ter muitos produtos e quero classificá-los por preço. Nesse caso, o SortedSet não pode conter produtos diferentes com o mesmo preço: [“salt”, 0,5 $], [“milk”, 1 $], [“bread”, 1 $], [“bananas”, 2 $ ] No exemplo acima, o leite será substituído por pão. Nesse caso, o contrato da interface Set herdada será violado, porque os objetos desiguais se substituem. Eu vermelho JavaDoc de SortedSet e sei que esse comportamento bem documentado, mas acho que é uma falha lógica.

Qual é a sua opinião, talvez você já tenha problemas semelhantes com Set e SortedSet?