java.lang.utilのインターフェイスSetは、同じパッケージのCollectionとまったく同じ構造を持っています。
継承階層では、AbstractSetはSetとAbstractCollectionの両方のサブであり、どちらもCollectionのサブです。
Set のもう1 つの直接の子孫はSortedSetであり、 SortedSetはSetのみを拡張しています。
私が疑問に思っているのは、java.lang.util の Set の利点は何ですか?なぜそこにあるのでしょうか?
何も欠けていない場合、API の現在の構造または階層に何も追加されていません。AbstractSet が Set を実装せずに AbstractCollectionを拡張しただけで、SortedSetがCollection を直接拡張した場合は、すべて同じになります。
私が考えることができる唯一のことは、セットが文書化の目的でそこにあるということです。
階層をさらに構造化/再構築するべきではありません。これは、子孫の構造的な変更を意味し、意味がありません。
ここで何か不足している場合は、検証または反論を探しています。
//===========================================
編集: Q は: 「Set がそこにある理由」--API の構造に何が追加されますか?
セットがコレクション間で数学的にどのように特定されるかは明らかです。