インタフェースSortedMap<K,V>
- 型パラメータ:
K- このマップによって保持されるキーのタイプV- マップされた値のタイプ
- すべてのスーパー・インタフェース:
Map<K,,V> SequencedMap<K,V>
- 既知のすべてのサブインタフェース:
ConcurrentNavigableMap<K,,V> NavigableMap<K,V>
- 既知のすべての実装クラス:
ConcurrentSkipListMap,TreeMap
Mapです。 マップの順序付けは、キーの自然順序付けに従って行われるか、ソート・マップ構築時に通常提供されるComparatorを使って行われます。 この順序は、ソート・マップのコレクション・ビュー(entrySet、keySet、valuesメソッドによって返される)の反復処理時に反映されます。 その順序付けを利用するために、追加のオペレーションがいくつか提供されています。 (このインタフェースはマップで、SortedSetに類似しています。)
ソート・マップに挿入されるすべてのキーは、Comparableインタフェースを実装するか、指定されたコンパレータによって受け入れられる必要があります。 さらに、各キーは相互に比較可能である必要があります。つまり、ソート・マップ内の任意のキーk1とk2に対して、k1.compareTo(k2) (またはcomparator.compare(k1, k2))がClassCastExceptionをスローしてはいけません。 この制約に違反すると、その違反側のメソッドやコンストラクタの呼出しはClassCastExceptionをスローします。
あるソート・マップがMapインタフェースを正しく実装するには、明示的なコンパレータが提供されているかどうかにかかわらず、そのソート・マップによって維持される順序付けがequalsとの一貫性のあるものでなければいけないことに注意してください。 (equalsとの一貫性の正確な定義については、ComparableインタフェースまたはComparatorインタフェースを参照してください。) これはMapインタフェースがequalsオペレーションに基づいて定義されるためですが、ソート・マップはそのcompareTo (またはcompare)メソッドを使用してすべてのキー比較を実行するので、このメソッドによって等しいと見なされる2つのキーは、ソート・マップから見ても同じものです。 ツリー・マップの動作は、その順序付けがequalsと一貫性がない場合でも明確に定義されていますが、Mapインタフェースの一般規約には準拠していません。
汎用のソート・マップ実装クラスはすべて、4つの「標準」コンストラクタを提供するべきです。 ただし、必要なコンストラクタをインタフェースによって指定することはできないため、この推奨事項を強制することはできません。 すべてのソート・マップ実装に期待される「標準」コンストラクタは次のとおりです。
- void (引数なし)コンストラクタ。これは、キーの自然順序付けに従ってソートされた空のソート・マップを作成します。
Comparator型の単一引数を持つコンストラクタ。これは、指定されたコンパレータに従ってソートされた空のソート・マップを作成します。Map型の単一引数を持つコンストラクタ。これは、キーの自然順序付けに従ってソートされた、その引数と同じキーと値のマッピングを含む新しいマップを作成します。SortedMap型の単一引数を持つコンストラクタ。これは、入力のソート・マップと同一のキーと値のマッピングと順序付けとを持つ、新しいソート・マップを作成します。
ノート:一部のメソッドは、制限されたキー範囲を持つサブマップを返します。 そのような範囲は片側が開いています。つまり、それらの範囲には、下端点は含まれますが上端点は含まれません(該当する場合)。 上下端点を含む閉じた範囲が必要で、キーの型により直後のキーが計算可能になる場合、単にlowEndpoint - successor(highEndpoint)の部分範囲を指定してください。 たとえば、mが、キーが文字列のマップであるとします。 次の慣用法は、キーがlow - highの範囲(上下端点を含む)にあるm内のすべてのキーと値のマッピングを保持するビューを取得します。
SortedMap<String, V> sub = m.subMap(low, high+"\0");同様のテクニックを使って、上下端点のどちらも含まない開いた範囲を生成できます。 次の慣用法は、キーが
low - highの範囲(上下端点を含まない)にあるm内のすべてのキーと値のマッピングを保持するビューを取得します。 SortedMap<String, V> sub = m.subMap(low+"\0", high);
このインタフェースは、Java Collections Frameworkのメンバーです。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
ネストされたクラスのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明Comparator<? super K> このマップ内のキーを順序付けするのに使うコンパレータを返します。ただし、このマップがそのキーの自然順序付けを使う場合はnullを返します。entrySet()このマップに含まれるマッピングのSetビューを返します。firstKey()マップ内に現在ある最初(下端)のキーを返します。このマップのtoKeyよりも確実に小さいキーを持つ部分のビューを返します。keySet()このマップに含まれるキーのSetビューを返します。lastKey()マップ内に現在ある最後(上端)のキーを返します。default VUnsupportedOperationExceptionをスローします。default VUnsupportedOperationExceptionをスローします。reversed()このマップの逆順viewを返します。このマップのfromKey(これを含む) -toKey(これを含まない)のキー範囲を持つ部分のビューを返します。このマップのfromKey以上のキーを持つ部分のビューを返します。values()このマップに含まれる値のCollectionビューを返します。インタフェースjava.util.Mapで宣言されたメソッド
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, equals, forEach, get, getOrDefault, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, sizeインタフェースjava.util.SequencedMapで宣言されたメソッド
firstEntry, lastEntry, pollFirstEntry, pollLastEntry, sequencedEntrySet, sequencedKeySet, sequencedValues
-
メソッドの詳細
-
comparator
Comparator<? super K> comparator()このマップ内のキーを順序付けするのに使うコンパレータを返します。ただし、このマップがそのキーの自然順序付けを使う場合はnullを返します。- 戻り値:
- このマップ内のキーを順序付けするのに使うコンパレータ。このマップがそのキーの自然順序付けを使う場合は
null
-
subMap
このマップのfromKey(これを含む) -toKey(これを含まない)のキー範囲を持つ部分のビューを返します。fromKeyとtoKeyが等しい場合は、空のマップが返されます。 返されるマップはこのマップに連動しており、返されるマップでの変更はこのマップに反映され、その逆の場合も同様です。 返されるマップは、このマップがサポートするオプションのマップ・オペレーションをすべてサポートします。返されるマップは、その範囲外のキーが挿入されようとすると、
IllegalArgumentExceptionをスローします。- パラメータ:
fromKey- 返されるマップ内のキーの下端点(これを含む)toKey- 返されるマップ内のキーの上端点(これを含まない)- 戻り値:
- このマップの
fromKey(これを含む)からtoKey(これを含まない)のキー範囲を持つ部分のビュー - スロー:
ClassCastException- このマップのコンパレータを使用して(このマップがコンパレータを持たない場合は自然順序付けを使用して)、fromKeyとtoKeyを相互に比較できない場合。 実装は、マップ内に現在存在しているキーとfromKeyまたはtoKeyとを比較できない場合にこの例外をスローできる。ただし、必須ではない。NullPointerException-fromKeyまたはtoKeyがnullであり、このマップがnullキーを許可しない場合IllegalArgumentException-fromKeyがtoKeyよりも大きい場合、またはこのマップ自体が制限された範囲を持っており、fromKeyまたはtoKeyがその範囲から外れている場合
-
headMap
このマップのtoKeyよりも確実に小さいキーを持つ部分のビューを返します。 返されるマップはこのマップに連動しており、返されるマップでの変更はこのマップに反映され、その逆の場合も同様です。 返されるマップは、このマップがサポートするオプションのマップ・オペレーションをすべてサポートします。返されるマップは、その範囲外のキーが挿入されようとすると、
IllegalArgumentExceptionをスローします。- パラメータ:
toKey- 返されるマップ内のキーの上端点(これを含まない)- 戻り値:
- このマップの
toKeyよりも確実に小さいキーを持つ部分のビュー - スロー:
ClassCastException-toKeyがこのマップのコンパレータと互換性がない場合(または、そのマップがコンパレータを持たない場合、toKeyがComparableを実装していない場合)。 実装は、マップ内に現在存在しているキーとtoKeyとを比較できない場合にこの例外をスローできる。ただし、必須ではないNullPointerException-toKeyがnullであり、このマップがnullキーを許可しない場合IllegalArgumentException- このマップ自体が制限された範囲を持っており、toKeyがその範囲から外れている場合
-
tailMap
このマップのfromKey以上のキーを持つ部分のビューを返します。 返されるマップはこのマップに連動しており、返されるマップでの変更はこのマップに反映され、その逆の場合も同様です。 返されるマップは、このマップがサポートするオプションのマップ・オペレーションをすべてサポートします。返されるマップは、その範囲外のキーが挿入されようとすると、
IllegalArgumentExceptionをスローします。- パラメータ:
fromKey- 返されるマップ内のキーの下端点(これを含む)- 戻り値:
- このマップの
fromKey以上のキーを持つ部分のビュー - スロー:
ClassCastException-fromKeyがこのマップのコンパレータと互換性がない場合(または、そのマップがコンパレータを持たない場合、fromKeyがComparableを実装していない場合)。 実装は、マップ内に現在存在しているキーとfromKeyとを比較できない場合にこの例外をスローできる。ただし、必須ではないNullPointerException-fromKeyがnullであり、このマップがnullキーを許可しない場合IllegalArgumentException- このマップ自体が制限された範囲を持っており、fromKeyがその範囲から外れている場合
-
firstKey
K firstKey()マップ内に現在ある最初(下端)のキーを返します。- 戻り値:
- マップ内に現在ある最初(下端)のキー
- スロー:
NoSuchElementException- マップが空の場合
-
lastKey
-
keySet
このマップに含まれるキーのSetビューを返します。 セットのイテレータは、キーを昇順で返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットの反復処理中にマップが変更された場合、反復処理の結果は定義されていません(イテレータ自身のremoveオペレーションを除く)。 セットは要素の削除をサポートします。Iterator.remove、Set.remove、removeAll、retainAll、およびclearオペレーションで対応するマッピングをマップから削除します。addまたはaddAll操作はサポートされていません。 -
values
Collection<V> values()このマップに含まれる値のCollectionビューを返します。 コレクションのイテレータは、値を対応するキーの昇順で返します。 コレクションはマップと連動しているので、マップに対する変更はコレクションに反映され、またコレクションに対する変更はマップに反映されます。 コレクションの反復処理中にマップが変更された場合、反復処理の結果は定義されません(イテレータ自身のremoveオペレーションを除く)。 コレクションは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.remove、Collection.remove、removeAll、retainAll、およびclearオペレーションを通して行います。addまたはaddAll操作はサポートされていません。 -
entrySet
このマップに含まれるマッピングのSetビューを返します。 セットのイテレータは、エントリをキーの昇順で返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットの反復処理中にマップが変更された場合、反復処理の結果は定義されません(イテレータ自身のremoveオペレーション、またはイテレータにより返されるマップ・エントリに対するsetValueオペレーションを除く)。 セットは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.remove、Set.remove、removeAll、retainAll、およびclearオペレーションを通して行います。addまたはaddAll操作はサポートされていません。 -
putFirst
UnsupportedOperationExceptionをスローします。 このマップの比較メソッドによって誘起される検出順序によってマッピングの位置が決定されるため、明示的な配置はサポートされていません。- 定義:
- インタフェース
SequencedMap<K,内のV> putFirst - 実装要件:
- このインタフェースの実装では、常に
UnsupportedOperationExceptionがスローされます。 - パラメータ:
k- キーv- 値- 戻り値:
- 以前kに関連付けられていた値。関連付けられていない場合はnull
- スロー:
UnsupportedOperationException- 常時- 導入されたバージョン:
- 21
-
putLast
UnsupportedOperationExceptionをスローします。 このマップの比較メソッドによって誘起される検出順序によってマッピングの位置が決定されるため、明示的な配置はサポートされていません。- 定義:
- インタフェース
SequencedMap<K,内のV> putLast - 実装要件:
- このインタフェースの実装では、常に
UnsupportedOperationExceptionがスローされます。 - パラメータ:
k- キーv- 値- 戻り値:
- 以前kに関連付けられていた値。関連付けられていない場合はnull
- スロー:
UnsupportedOperationException- 常時- 導入されたバージョン:
- 21
-
reversed
このマップの逆順viewを返します。 返されるビューでのマッピングの検出順序は、このマップでのマッピングの検出順序の逆です。 逆の順序付けは、返されるビューのビュー・コレクションに含まれるすべての順序依存操作に影響します。 実装でこのビューの変更が許可されている場合は、基礎となるマップに"ライトスルー"が変更されます。 実装によっては、基礎となるマップに対する変更が、この逆方向ビューに表示される場合と表示されない場合があります。- 定義:
- インタフェース
SequencedMap<K,内のV> reversed - 実装要件:
- このインタフェースの実装では、順序が逆のSortedMapビューが返されます。 ビューの
reversed()メソッドは、このSortedMapへの参照を返します。 ビューに対するその他の操作は、このSortedMapのpublicメソッドへのコールを介して実装されます。 ビューのコールとこのSortedMapのコールとの正確な関係は指定されていません。 ただし、順序依存操作は、通常、反対の方向で適切なメソッドに委任するかのように動作します。 たとえば、ビューでfirstEntryをコールすると、このSortedMapでlastEntryがコールされる場合があります。 - 戻り値:
- このマップの逆順ビュー(
SortedMapとして) - 導入されたバージョン:
- 21
-