|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
マップ自身が昇順のキー順になることを保証します。ただし、キーの昇順は、そのキーの「自然順序付け」(Comparable インタフェースを参照) に従ってソートされた昇順、またはソートマップ作成時に提供されるコンパレータによってソートされた昇順です。この順序は、ソートマップのコレクションビュー (entrySet、keySet、values メソッドによって返される) の繰り返し処理時に反映されます。その順序付けを利用するために、追加のオペレーションがいくつか提供されています。このインタフェースは SortedSet インタフェースのマップに類似しています。
ソートマップに挿入されるすべてのキーは、Comparable インタフェースを実装するか、指定されたコンパレータによって受け付けられる必要があります。さらに、そのようなすべてのキーは「相互に比較可能」である必要があります。つまり、k1.compareTo(k2) (または comparator.compare(k1, k2)) は、ソートマップ内の任意の要素 k1 と k2 に対しても ClassCastException をスローしてはなりません。この制約に違反しようとすると、その違反側のメソッドやコンストラクタ呼び出しは ClassCastException をスローします。
ソートマップが正しく Map インタフェースを実装する必要がある場合は、明示的なコンパレータの提供の有無にかかわらず、ソートマップで管理される順序付けは「equals と一貫性」がなければなりません (「equals との一貫性」の正確な定義については、Comparable インタフェースまたは Comparator インタフェースを参照)。これは Map インタフェースが equals オペレーションに基づいて定義されるためですが、ソートマップはその compareTo メソッドまたは compare メソッドを使ってすべてのキー比較を実行するので、このメソッドによって等価と見なされる 2 つのキーは、ソートマップの見地からすれば同じものです。ツリーマップの動作は、その順序付けが equals と一貫性がない場合でも明確に定義されています。つまり、ツリーマップの動作は Map インタフェースの一般規約に従っていません。
汎用のソートマップ実装クラスはすべて、4 つの標準コンストラクタを提供する必要があります。その 4 つとは、1) void (引数なし) コンストラクタ、そのキーの「自然順序付け」に従ってソートされた空のソートマップを作成するもの、2) Comparator 型の引数を 1 つ持つコンストラクタ、指定されたコンパレータに従ってソートされた空のソートマップを作成するもの、3) Map 型の引数を 1 つ持つコンストラクタ、キーの自然順序付けに従ってソートされた、その引数と同じキーと値のマッピングを持つ新しいマップを作成するもの、4) ソートマップ型の引数を 1 つ持つコンストラクタ、入力のソートマップと同じキーと値のマッピングと同じ順序付けを持つ新しいソートマップを作成するものです。インタフェースはコンストラクタを保持できないので、これを強制的に推奨することはできませんが、JDK の実装 (TreeMap) はこれに準拠します。
Map
,
TreeMap
,
SortedSet
,
Comparator
,
Comparable
,
Collection
,
ClassCastException
クラス java.util.Map から継承した内部クラス |
Map.Entry |
メソッドの概要 | |
Comparator |
comparator()
このソートマップに関連付けられているコンパレータを返します。 |
Object |
firstKey()
ソートマップ内に現在ある最初 (下限) のキーを返します。 |
SortedMap |
headMap(Object toKey)
ソートマップの toKey より小さいキーを持つ部分のビューを返します。 |
Object |
lastKey()
ソートマップ内に現在ある最後 (上限) のキーを返します。 |
SortedMap |
subMap(Object fromKey,
Object toKey)
このソートマップの fromKey (含む) 〜 toKey (含まない) のキー範囲を持つ部分のビューを返します (fromKey と toKey が同じ場合は、空のソートマップが返される)。 |
SortedMap |
tailMap(Object fromKey)
ソートマップの fromKey 以上のキーを持つ部分のビューを返します。 |
インタフェース java.util.Map から継承したメソッド |
clear,
containsKey,
containsValue,
entrySet,
equals,
get,
hashCode,
isEmpty,
keySet,
put,
putAll,
remove,
size,
values |
メソッドの詳細 |
public Comparator comparator()
public SortedMap subMap(Object fromKey, Object toKey)
このメソッドによって返されるマップは、ユーザがキーを指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その下限点は含むが上限点は含まない「片側が開いた範囲」を返します。上下限点を含む「閉じた範囲」が必要で、キーの型が直後のキーの計算を可能にしている場合、単に lowEndpoint から直後のキー (highEndpoint) までの部分範囲を指定してください。たとえば、m はそのキーが文字列のマップである場合、次のイディオムは、キーが low 〜 high までの範囲 (上下限点を含む) にある m 内のすべてのキーと値のマッピングを保持するビューを取得します。
Map sub = m.subMap(low, high+"¥0");同様のテクニックを使って、上下限点のどちらも含まない「開いた範囲」を生成できます。次のイディオムは、キーが low 〜 high までの範囲 (上下限点を含まない) にある m 内のすべてのキーと値のマッピングを保持するビューを取得します。
Map sub = m.subMap(low+"¥0", high);
fromKey
- subMap の下限点 (含む)toKey
- subMap の上限点 (含まない)public SortedMap headMap(Object toKey)
このメソッドによって返されるマップは、ユーザがキーを指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その (上) 限点を含まないビューを返します。この限点を含むビューを必要とし、キーの型が直後のキーの計算を可能にしている場合は、単に直後のキー (highEndpoint) によって限界を設けられた headMap を指定してください。たとえば、m はそのキーが文字列のマップである場合、次のイディオムは、キーが high 以下の m 内のすべてのキーと値のマッピングを保持するビューを取得します。
Map head = m.headMap(high+"¥0");
toKey
- subMap の上限点 (含まない)public SortedMap tailMap(Object fromKey)
このメソッドによって返されるマップは、ユーザがキーを指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その (下) 限点を含むビューを返します。この限点を含まないビューを必要とし、要素の型が直後の要素の計算を可能にしている場合、単に 直後の値 (lowEndpoint) によって限界を設けられた tailMap を指定してください。たとえば、m はそのキーが文字列のマップである場合、次のイディオムは、キーが high より大きい m 内のすべてのキーと値のマッピングを保持するビューを取得します。
Map tail = m.tailMap(low+"¥0");
fromKey
- tailMap の下限点 (含む)public Object firstKey()
public Object lastKey()
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |