インターフェースを調べてみるMap
と、SortedMap
インターフェース内ですでに定義されている多くのメソッドが、内で再定義されているMap
(単に継承されていない)ことに気づきましたSortedMap
。
SortedMap
拡張Map
、たとえば次のようないくつかのメソッドを再宣言する理由:
Set<K> keySet();
Collection<V> values();
なぜこの冗長性?
(私はJDK 7を使用しています)
インターフェースを調べてみるMap
と、SortedMap
インターフェース内ですでに定義されている多くのメソッドが、内で再定義されているMap
(単に継承されていない)ことに気づきましたSortedMap
。
SortedMap
拡張Map
、たとえば次のようないくつかのメソッドを再宣言する理由:
Set<K> keySet();
Collection<V> values();
なぜこの冗長性?
(私はJDK 7を使用しています)
メソッドはインターフェースで宣言され、メソッドはクラスで定義されていると言えます。
マップは注文されることが保証されていませんが、ソートされたマップは注文されます。これは、各方法が保証するものが異なり、異なるドキュメントが必要であることを意味します。
Map.keySet()のJavadocは、違いを強調しています
このマップに含まれるキーのセットビューを返します。セットはマップに裏打ちされているため、マップへの変更はセットに反映され、その逆も同様です。セットに対する反復の進行中にマップが変更された場合(イテレーター自体の削除操作を除く)、反復の結果は未定義です。セットは、Iterator.remove、Set.remove、removeAll、retainAll、およびclear操作を介して、マップから対応するマッピングを削除する要素の削除をサポートします。addまたはaddAll操作はサポートされていません。
戻り値:このマップに含まれるキーのセットビュー
SortedMap.keySet()のJavadocは
このマップに含まれるキーのセットビューを返します。セットのイテレータは、キーを昇順で返します。セットはマップに裏打ちされているため、マップへの変更はセットに反映され、その逆も同様です。セットに対する反復の進行中にマップが変更された場合(イテレーター自体の削除操作を除く)、反復の結果は未定義です。セットは、Iterator.remove、Set.remove、removeAll、retainAll、およびclear操作を介して、対応するマッピングをマップから削除する要素の削除をサポートします。addまたはaddAll操作はサポートされていません。
指定:インターフェイスマップのkeySet
戻り値:このマップに含まれるキーのセットビュー。昇順で並べ替えられます