K
- このマップで保持されるキーの型V
- マップされる値の型public interface SortedMap<K,V> extends Map<K,V>
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 つの「標準」コンストラクタを提供するべきです。ただし、必要なコンストラクタをインタフェースによって指定することはできないため、この推奨事項を強制することはできません。すべてのソートマップ実装に期待される「標準」コンストラクタは次のとおりです。
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 のメンバーです。
Map
, TreeMap
, SortedSet
, Comparator
, Comparable
, Collection
, ClassCastException
修飾子と型 | メソッドと説明 |
---|---|
Comparator<? super K> |
comparator()
このマップ内のキーを順序付けするのに使うコンパレータを返します。ただし、このマップがそのキーの自然順序付けを使う場合は
null を返します。 |
Set<Map.Entry<K,V>> |
entrySet()
このマップに含まれるマッピングの
Set ビューを返します。 |
K |
firstKey()
マップ内に現在ある最初 (下端) のキーを返します。
|
SortedMap<K,V> |
headMap(K toKey)
このマップの
toKey よりも確実に小さいキーを持つ部分のビューを返します。 |
Set<K> |
keySet()
このマップに含まれるキーの
Set ビューを返します。 |
K |
lastKey()
マップ内に現在ある最後 (上端) のキーを返します。
|
SortedMap<K,V> |
subMap(K fromKey, K toKey)
このマップの
fromKey (これを含む) - toKey (これを含まない) のキー範囲を持つ部分のビューを返します。 |
SortedMap<K,V> |
tailMap(K fromKey)
このマップの
fromKey 以上のキーを持つ部分のビューを返します。 |
Collection<V> |
values()
このマップに含まれる値の
Collection ビューを返します。 |
Comparator<? super K> comparator()
null
を返します。null
SortedMap<K,V> subMap(K fromKey, K toKey)
fromKey
(これを含む) - toKey
(これを含まない) のキー範囲を持つ部分のビューを返します。fromKey
と toKey
が等しい場合は、空のマップが返されます。返されるマップはこのマップに連動しており、返されるマップでの変更はこのマップに反映され、その逆の場合も同様です。返されるマップは、このマップがサポートするオプションのマップオペレーションをすべてサポートします。
返されるマップは、その範囲外のキーが挿入されようとすると、IllegalArgumentException
をスローします。
fromKey
- 返されるマップ内のキーの下端点 (これを含む)toKey
- 返されるマップ内のキーの上端点 (これを含まない)fromKey
(これを含む) から toKey
(これを含まない) のキー範囲を持つ部分のビューClassCastException
- このマップのコンパレータを使用して (このマップがコンパレータを持たない場合は自然順序付けを使用して)、fromKey
と toKey
の相互比較を行えない場合。実装は、マップ内に現在存在しているキーと fromKey
または toKey
とを比較できない場合にこの例外をスローできる。ただし、必須ではない。NullPointerException
- fromKey
または toKey
が null であり、このマップが null キーを許可しない場合IllegalArgumentException
- fromKey
が toKey
よりも大きい場合、またはこのマップ自体が制限された範囲を持っており、fromKey
または toKey
がその範囲から外れている場合SortedMap<K,V> headMap(K toKey)
toKey
よりも確実に小さいキーを持つ部分のビューを返します。返されるマップはこのマップに連動しており、返されるマップでの変更はこのマップに反映され、その逆の場合も同様です。返されるマップは、このマップがサポートするオプションのマップオペレーションをすべてサポートします。
返されるマップは、その範囲外のキーが挿入されようとすると、IllegalArgumentException
をスローします。
toKey
- 返されるマップ内のキーの上端点 (これを含まない)toKey
よりも確実に小さいキーを持つ部分のビューClassCastException
- toKey
がこのマップのコンパレータと互換性がない場合 (または、そのマップがコンパレータを持たない場合、toKey
が Comparable
を実装していない場合)。実装は、マップ内に現在存在しているキーと toKey
とを比較できない場合にこの例外をスローできる。ただし、必須ではないNullPointerException
- toKey
が null であり、このマップが null キーを許可しない場合IllegalArgumentException
- このマップ自体が制限された範囲を持っており、toKey
がその範囲から外れている場合SortedMap<K,V> tailMap(K fromKey)
fromKey
以上のキーを持つ部分のビューを返します。返されるマップはこのマップに連動しており、返されるマップでの変更はこのマップに反映され、その逆の場合も同様です。返されるマップは、このマップがサポートするオプションのマップオペレーションをすべてサポートします。
返されるマップは、その範囲外のキーが挿入されようとすると、IllegalArgumentException
をスローします。
fromKey
- 返されるマップ内のキーの下端点 (これを含む)fromKey
以上のキーを持つ部分のビューClassCastException
- fromKey
がこのマップのコンパレータと互換性がない場合 (または、そのマップがコンパレータを持たない場合、fromKey
が Comparable
を実装していない場合)。実装は、マップ内に現在存在しているキーと fromKey
とを比較できない場合にこの例外をスローできる。ただし、必須ではないNullPointerException
- fromKey
が null であり、このマップが null キーを許可しない場合IllegalArgumentException
- このマップ自体が制限された範囲を持っており、fromKey
がその範囲から外れている場合K firstKey()
NoSuchElementException
- マップが空の場合K lastKey()
NoSuchElementException
- マップが空の場合Set<K> keySet()
Set
ビューを返します。セットのイテレータは、キーを昇順で返します。セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。セットの反復処理中にマップが変更された場合、反復処理の結果は定義されていません (イテレータ自身の remove
オペレーションを除く)。セットは要素の削除をサポートします。Iterator.remove
、Set.remove
、removeAll
、retainAll
、および clear
オペレーションで対応するマッピングをマップから削除します。add
または addAll
オペレーションはサポートされていません。Collection<V> values()
Collection
ビューを返します。コレクションのイテレータは、値を対応するキーの昇順で返します。コレクションはマップと連動しているので、マップに対する変更はコレクションに反映され、またコレクションに対する変更はマップに反映されます。コレクションの反復処理中にマップが変更された場合、反復処理の結果は定義されません (イテレータ自身の remove
オペレーションを除く)。コレクションは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.remove
、Collection.remove
、removeAll
、retainAll
、および clear
オペレーションを通して行います。add
または addAll
オペレーションはサポートされていません。Set<Map.Entry<K,V>> entrySet()
Set
ビューを返します。セットのイテレータは、エントリをキーの昇順で返します。セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。セットの反復処理中にマップが変更された場合、反復処理の結果は定義されません (イテレータ自身の remove
オペレーション、またはイテレータにより返されるマップエントリに対する setValue
オペレーションを除く)。セットは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.remove
、Set.remove
、removeAll
、retainAll
、および clear
オペレーションを通して行います。add
または addAll
オペレーションはサポートされていません。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.