|
Foundation 1.1.2 | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface SortedMap
キーの自然順序付け (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 つの標準コンストラクタを提供する必要があります。1) void (引数なしの) コンストラクタ。これは、キーの自然順序付けに従ってソートされた空のソートマップを作成します。2) Comparator 型の単一引数を持つコンストラクタ。これは、指定されたコンパレータに従ってソートされた空のソートマップを作成します。3) Map 型の単一引数を持つコンストラクタ。これは、キーの自然順序付けに従ってソートされた、その引数と同じキーと値のマッピングを含む新しいマップを作成します。4) SortedMap 型の単一引数を持つコンストラクタ。これは、入力のソートマップと同一のキーと値のマッピングと順序付けとを持つ、新しいソートマップを作成します。インタフェースはコンストラクタを保持できないので、これは強制的なものではありませんが、SDK の実装 (TreeMap) はこれに従っています。
このインタフェースは、Java Collections Framework のメンバーです。
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 (これを含まない) のキー範囲を持つ部分のビューを返します。 |
SortedMap |
tailMap(Object fromKey)
このソートマップの fromKey 以上のキーを持つ部分のビューを返します。 |
インタフェース java.util.Map から継承されたメソッド |
---|
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, size, values |
メソッドの詳細 |
---|
Comparator comparator()
SortedMap subMap(Object fromKey, Object toKey)
このメソッドによって返されるマップは、ユーザーがキーを指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。
注:このメソッドは常に、その下端点を含むが上端点を含まない「片側が開いた範囲」を返します。上下端点を含む「閉じた範囲」が必要であり、そのキーの型で、指定されたキーの直後のキーの計算が可能な場合は、単に lowEndpoint 〜 successor(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 headMap(Object toKey)
このメソッドによって返されるマップは、ユーザーがキーを指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。
注:このメソッドは常に、その上端点を含まないビューを返します。この端点を含むビューが必要であり、そのキーの型で、指定されたキーの直後のキーの計算が可能な場合は、単に successor(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 tailMap(Object fromKey)
このメソッドによって返されるマップは、ユーザーがキーを指定された範囲外に挿入しようとすると IllegalArgumentException をスローします。
注:このメソッドは常に、その下端点を含むビューを返します。この端点を含まないビューを必要とし、その要素の型で、指定された値の直後の値の計算が可能な場合は、単に successor(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 キーを許容しない場合Object firstKey()
NoSuchElementException
- マップが空の場合Object lastKey()
NoSuchElementException
- マップが空の場合
|
Foundation 1.1.2 | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。