|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
キーを値にマッピングするオブジェクトです。マップには、同一のキーを複数登録することはできません。各キーは 1 つの値にしかマッピングできません。
このインタフェースは、インタフェースというよりむしろ完全に抽象クラスであった Dictionary クラスに代わるものです。
Map インタフェースが提供する 3 つのコレクションビューにより、マップの内容を、キーのセット、値のコレクション、あるいはキーと値のマッピングのセットとして表示できるようになります。マップの「順序」は、マップのコレクションビューの反復子が要素を返すときの順序として定義されます。TreeMap クラスなど一部のマップの実装では、順序について保証しますが、HashMap クラスなどの実装では順序は保証されません。
注: 可変オブジェクトをマップキーとして使用する場合は細心の注意が必要です。オブジェクトがマップ内のキーであるときに、equals の比較に影響を与える方法でオブジェクトの値が変更された場合、マップの動作は保証されません。この禁止事項の特殊な例として、マップがそれ自身をキーとして持つことができないことが挙げられます。マップがそれ自身を値として持つことは許可されますが、その場合は細心の注意が必要です。このようなマップの場合、equals メソッドおよび hashCode メソッドの結果は、保証されません。
汎用マップの実装クラスはすべて、次の 2 つの標準的なコンストラクタを提供するようにしてください。2 つの標準的なコンストラクタとは、void (引数なし) コンストラクタと、Map 型の引数を 1 つとるコンストラクタです。前者は空のマップを作成し、後者は同じキーと値のマッピングを引数として持つ新しいマップを作成します。その結果、ユーザは、後者のコンストラクタを使って任意のマップをコピーすることにより、必要なクラスと等価なマップを作成できます。これは強制的なものではありませんが (インタフェースがコンストラクタを持つことができないため)、SDK での汎用マップの実装はすべてこれに従っています。
このマップがオペレーションをサポートしていない場合、このインタフェース (処理されるマップを修正するメソッド) に含まれている「破壊的な」メソッドは、UnsupportedOperationException をスローするように指定されています。このとき、呼び出しがマップに影響を及ぼさない場合、これらのメソッドは UnsupportedOperationException をスローすることがありますが、必須ではありません。たとえば、マッピングを「重ね合わせる」マップが空の場合に、変更不可能なマップで putAll(Map)
メソッドを呼び出すと、例外をスローすることがありますが、必須ではありません。
マップの実装には、格納できるキーと値に制限があるものもあります。たとえば、null キーと null 値を禁止する実装や、null キーの型に制限がある実装もあります。不適当なキーまたは値を挿入しようとすると、通常 NullPointerException または ClassCastException のようなチェックされない例外がスローされます。不適当なキーや値があるか照会しようとすると、例外をスローする場合や、ただ false を返す場合もあります。前の動作を禁止する実装もあれば、後の動作を禁止する実装もあります。多くの場合は、マップに不適格な要素を挿入しない不適格なキーまたは値を処理しようとすると、実装の裁量で、例外がスローされる場合や、処理が有効になる場合があります。こうした例外は、このインタフェースに関する「任意」の仕様としてマークされます。
HashMap
,
TreeMap
,
Hashtable
,
SortedMap
,
Collection
,
Set
入れ子クラスの概要 | |
static interface |
Map.Entry
マップのエントリ (キーと値のペア) です。 |
メソッドの概要 | |
void |
clear()
マップからマッピングをすべて削除します (任意のオペレーション)。 |
boolean |
containsKey(Object key)
指定されたキーのマッピングがマップに含まれている場合に true を返します。 |
boolean |
containsValue(Object value)
マップが、指定された値に 1 つ以上のキーをマッピングしている場合に true を返します。 |
Set |
entrySet()
マップに含まれているマッピングのセットビューを返します。 |
boolean |
equals(Object o)
指定されたオブジェクトがこのマップと等しいかどうかを比較します。 |
Object |
get(Object key)
マップが指定のキーをマップする値を返します。 |
int |
hashCode()
マップのハッシュコード値を返します。 |
boolean |
isEmpty()
マップがキーと値のマッピングを保持しない場合に true を返します。 |
Set |
keySet()
マップに含まれているキーのセットビューを返します。 |
Object |
put(Object key,
Object value)
指定された値と指定されたキーをこのマップに関連付けます (任意のオペレーション)。 |
void |
putAll(Map t)
指定されたマップのすべてのマッピングをこのマップにコピーします (任意のオペレーション)。 |
Object |
remove(Object key)
このキーにマッピングがある場合に、そのマッピングをマップから削除します (任意のオペレーション)。 |
int |
size()
マップ内のキーと値のマッピングの数を返します。 |
Collection |
values()
マップに含まれている値のコレクションビューを返します。 |
メソッドの詳細 |
public int size()
public boolean isEmpty()
public boolean containsKey(Object key)
key
- マップにあるかどうかが判定されるキー
ClassCastException
- キーがマップに適さない型の場合 (任意のオプション)
NullPointerException
- キーが null のときに、マップが null キーを許可しない場合 (任意のオプション)public boolean containsValue(Object value)
value
- マップにあるかどうかを判定される値
ClassCastException
- 値がマップに適さない型の場合 (任意のオプション)
NullPointerException
- 値が null のときに、マップが null 値を許可しない場合 (任意のオプション)public Object get(Object key)
つまり、マップに (key==null ? k==null : key.equals(k)) という条件で、キー k から値 v までマッピングが含まれる場合、このメソッドは v を返します。含まれない場合は null を返します。このようなマッピングが 1 つだけあります。
key
- 関連付けられた値が返されるキー
ClassCastException
- キーがマップに適さない型の場合 (任意のオプション)
NullPointerException
- キーが null のときに、マップが null キーを許可しない場合 (任意のオプション)containsKey(Object)
public Object put(Object key, Object value)
m.containsKey(k)
が true を返す場合にかぎり、マップ m は、キー k のマッピングを含むと言えます。
key
- 指定される値が関連付けられるキーvalue
- 指定されるキーに関連付けられる値
UnsupportedOperationException
- put オペレーションがマップによってサポートされていない場合
ClassCastException
- 指定されたキーまたは値のクラスが原因で、マップに格納できない場合
IllegalArgumentException
- このキーまたは値の特性が原因で、マップに格納できない場合
NullPointerException
- マップが null キーや null 値を許可しないときに、指定されたキーまたは値が null の場合public Object remove(Object key)
(key==null ? k==null : key.equals(k))
という条件で、キー k から値 v までマッピングがマップに含まれる場合、このマッピングは削除されます。マップはこのようなマッピングを 1 つだけ含みます。
キーを以前関連付けていたマップの値を返します。このキーのマッピングがマップにない場合は、null を返します(null の戻り値は、実装が null 値をサポートしている場合、マップが指定されたキーと null を以前関連付けていたことを示す場合もある)。1 度呼び出しが返れば、マップは指定されたキーのマッピングを含みません。
key
- マッピングがマップから削除されるキー
ClassCastException
- キーがマップに適さない型の場合 (任意のオプション)
NullPointerException
- キーが null のときに、マップが null キーを許可しない場合 (任意のオプション)
UnsupportedOperationException
- マップが remove メソッドをサポートしていない場合public void putAll(Map t)
put(k, v)
を呼び出した場合と同じです。指定されたマップがこのオペレーションの処理中に変更された場合、そのオペレーションの動作は指定外となります。
t
- マップに格納されるマッピング
UnsupportedOperationException
- マップが putAll メソッドをサポートしていない場合
ClassCastException
- 指定されたマップ内のキーまたは値のクラスが原因で、マップに格納できない場合
IllegalArgumentException
- 指定されたマップ内のキーまたは値の特性が原因で、マップに格納できない場合
NullPointerException
- 指定されたマップが null であるか、またはこのマップが null キー や null 値を許可せず、指定されたマップに null キーや null 値が含まれない場合public void clear()
UnsupportedOperationException
- clear がマップによってサポートされていない場合public Set keySet()
public Collection values()
public Set entrySet()
public boolean equals(Object o)
Object
内の equals
o
- マップと等しいかどうかを比較するオブジェクト
public int hashCode()
Object
内の hashCode
Map.Entry.hashCode()
,
Object.hashCode()
,
Object.equals(Object)
,
equals(Object)
|
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.