|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
マップ自身が昇順のキー順になることを保証します。ただし、キーの昇順は、そのキーの「自然順序付け」(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 つ持つコンストラクタ。入力のソートマップと同じキーと値のマッピングと同じ順序付けを持つ新しいソートマップを作成します。インタフェースはコンストラクタを保持できないので、これを強制的に推奨することはできませんが、SDK の実装 (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 の上端点 (これを含まない)
ClassCastException
- このマップのコンパレータを使用して、fromKey および toKey を相互に比較できない場合 (または、マップに自然順序付けを使用するコンパレータがない場合)。fromKey または toKey をマップの現在のキーと比較できない場合、必ずしも要求されるわけではないが、この例外がスローされる場合がある
IllegalArgumentException
- fromKey が toKey より大きい場合。または、このマップ自体が subMap、headMap、または tailMap で、fromKey または toKey が指定した範囲の subMap、headMap、または tailMap にない場合
NullPointerException
- fromKey または toKey が null で、このソートマップが null キーを許容しない場合public SortedMap headMap(Object 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 キーを許容しない場合public SortedMap tailMap(Object 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 キーを許容しない場合public Object firstKey()
NoSuchElementException
- マップが空の場合public Object lastKey()
NoSuchElementException
- マップが空の場合
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.