私はSortedMapを持っています。そのキーの自然な順序に従って並べられています。無効なキャスト例外を発生させることなく、keySet()をSortedSetに安全にキャストできますか?SortedMapのkeySet()は常に安全にSortedSetにキャストできますか?
つまり、次のようにスローされますか?
SortedMap<K, V> map = ...;
SortedSet<K> set = (SortedSet<K>) map.keySet();
答えは「のSortedMapの実装に依存」である場合、これはTreeMapのための安全な最低限のですか?ドキュメントは、それが現在の実装がそのように実装した場合でも、SortedSet
になることを保証するものではないことを考えると
「ドキュメントで保証されていない」と書いている人は、SortedSetのkeySet()のドキュメントに「セットのイテレータがキーを昇順で返す」と述べています。したがって、 "SortedSet"ではないにもかかわらず、ソートされたセットです。 –
実際には** ** SortedSetです。しかし理論的には、指定されていない限り、必ずしもそうである必要はありません(例えば、内部キーセットではない新しいソートセットが反復のために作成される可能性があります - 確かにこれは愚かです)。 – assylias
修正:実際には、答えの1つが指摘しているソートセットであるとは限りません。 – assylias