|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface SortedMap<K,V>
マップ自身が昇順のキー順になることを保証します。ただし、キーの昇順は、そのキーの「自然順序付け」(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) はこれに準拠します。
このインタフェースは、Java Collections Framework のメンバです。
Map
,
TreeMap
,
SortedSet
,
Comparator
,
Comparable
,
Collection
,
ClassCastException
入れ子のクラスの概要 |
---|
インタフェース java.util.Map から継承された入れ子のクラス/インタフェース |
---|
Map.Entry<K,V> |
メソッドの概要 | |
---|---|
Comparator<? super K> |
comparator()
このソートマップに関連したコンパレータを返します。 |
K |
firstKey()
ソートマップ内に現在ある最初 (下端) のキーを返します。 |
SortedMap<K,V> |
headMap(K toKey)
ソートマップの toKey より小さいキーを持つ部分のビューを返します。 |
K |
lastKey()
ソートマップ内に現在ある最後 (上端) のキーを返します。 |
SortedMap<K,V> |
subMap(K fromKey,
K toKey)
このソートマップの fromKey (含む) 〜 toKey (含まない) のキー範囲を持つ部分のビューを返します (fromKey と toKey が同じ場合は、空のソートマップが返される)。 |
SortedMap<K,V> |
tailMap(K fromKey)
ソートマップの fromKey 以上のキーを持つ部分のビューを返します。 |
インタフェース java.util.Map から継承されたメソッド |
---|
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, size, values |
メソッドの詳細 |
---|
Comparator<? super K> comparator()
SortedMap<K,V> subMap(K fromKey, K 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 の上端点 (これを含まない)
ClassCastException
- このマップのコンパレータを使用して、fromKey および toKey を相互に比較できない場合 (または、マップに自然順序付けを使用するコンパレータがない場合)。fromKey または toKey をマップの現在のキーと比較できない場合、必ずしも要求されるわけではないが、この例外がスローされる場合がある
IllegalArgumentException
- fromKey が toKey より大きい場合。または、このマップ自体が subMap、headMap、または tailMap で、fromKey または toKey が指定した範囲の subMap、headMap、または tailMap にない場合
NullPointerException
- fromKey または toKey が null で、このソートマップが null キーを許容しない場合SortedMap<K,V> headMap(K toKey)
このメソッドによって返されるマップは、ユーザがキーを指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その (上) 端点を含まないビューを返します。この端点を含むビューを必要とし、キーの型により直後のキーの計算が可能になる場合は、単に直後のキー (highEndpoint) によって限界を設けられた headMap を指定してください。たとえば、m はそのキーが文字列のマップである場合、次の慣用法は、キーが high 以下の m 内のすべてのキーと値のマッピングを保持するビューを取得します。
Map head = m.headMap(high+"\0");
toKey
- subMap の上端点 (これを含まない)
ClassCastException
- toKey がこのマップのコンパレータと互換性がない場合 (または、マップにコンパレータがない場合、toKey に Comparable が実装されていない場合)。toKey がマップの現在のキーと比較できない場合、必ずしも要求されるわけではないが、この例外がスローされる場合がある
IllegalArgumentException
- このマップ自体が subMap、headMap、または tailMap で、toKey が指定した範囲の subMap、headMap、または tailMap にない場合
NullPointerException
- toKey が null で、ソートマップが null キーを許容しない場合SortedMap<K,V> tailMap(K fromKey)
このメソッドによって返されるマップは、ユーザがキーを指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。
注: このメソッドは常に、その (下) 端点を含むビューを返します。この端点を含まないビューを必要とし、要素の型により直後の要素の計算が可能な場合、単に直後の値 (lowEndpoint) によって限界を設けられた tailMap を指定してください。たとえば、m はそのキーが文字列のマップである場合、次の慣用法は、キーが low より大きい m 内のすべてのキーと値のマッピングを保持するビューを取得します。
Map tail = m.tailMap(low+"\0");
fromKey
- tailMap の下端点 (これを含む)
ClassCastException
- fromKey がこのマップのコンパレータと互換性がない場合 (または、マップにコンパレータがない場合、fromKey に Comparable が実装されていない場合)。fromKey がマップの現在のキーと比較できない場合、必ずしも要求されるわけではないが、この例外がスローされる場合がある
IllegalArgumentException
- このマップ自体が subMap、headMap、または tailMap で、fromKey が指定した範囲の subMap、headMap、または tailMap にない場合
NullPointerException
- fromKey が null で、ソートマップが null キーを許容しない場合K firstKey()
NoSuchElementException
- マップが空の場合K lastKey()
NoSuchElementException
- マップが空の場合
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。