|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.util.AbstractMap<K,V>
K
- このマップが保持するキーの型V
- マップされる値の型public abstract class AbstractMap<K,V>
このクラスは、Map インタフェースのスケルトン実装を提供し、このインタフェースを実装するのに必要な作業量を最小限に抑えます。
変更不可能なマップを実装するには、このクラスを拡張して、マップのマッピングのセットビューを返す entrySet メソッドを実装する必要があります。通常、返されたセットは AbstractSet の上に実装されます。このセットでは add メソッドと remove メソッドをサポートすべきではありません。 また、セットの反復子では remove メソッドをサポートすべきではありません。
変更可能なマップを実装するには、上記に加えて、このクラスの put メソッドをオーバーライドします (オーバーライドしなかった場合は、UnsupportedOperationException がスローされます)。また、上記に加えて、entrySet().iterator() で返される反復子に remove メソッドを実装する必要があります。
Map インタフェースの仕様で推奨されているように、通常は、引数なしの void コンストラクタ、および引数にマップをとるコンストラクタを提供してください。
実装の詳細については、このクラスの abstract メソッド以外の各メソッドのドキュメントを参照してください。より効率的な実装ができるマップの場合は、これらのメソッドをオーバーライドしてもかまいません。
このクラスは、Java Collections Framework のメンバーです。
Map
,
Collection
入れ子のクラスの概要 | |
---|---|
static class |
AbstractMap.SimpleEntry<K,V>
キーと値を維持するエントリ。 |
static class |
AbstractMap.SimpleImmutableEntry<K,V>
不変のキーと値を維持するエントリ。 |
インタフェース java.util.Map から継承された入れ子のクラス/インタフェース |
---|
Map.Entry<K,V> |
コンストラクタの概要 | |
---|---|
protected |
AbstractMap()
唯一のコンストラクタです。 |
メソッドの概要 | |
---|---|
void |
clear()
マップからマッピングをすべて削除します (任意のオペレーション)。 |
protected Object |
clone()
AbstractMap のインスタンスのシャローコピーを返します。 |
boolean |
containsKey(Object key)
マップが指定されたキーのマッピングを保持する場合に true を返します。 |
boolean |
containsValue(Object value)
マップが 1 つまたは複数のキーと指定された値をマッピングしている場合に true を返します。 |
abstract Set<Map.Entry<K,V>> |
entrySet()
このマップに含まれるマップの Set ビューを返します。 |
boolean |
equals(Object o)
指定されたオブジェクトがこのマップと等しいかどうかを比較します。 |
V |
get(Object key)
指定されたキーがマップされている値を返します。 |
int |
hashCode()
マップのハッシュコード値を返します。 |
boolean |
isEmpty()
マップがキーと値のマッピングを保持しない場合に true を返します。 |
Set<K> |
keySet()
このマップに含まれるキーの Set ビューを返します。 |
V |
put(K key,
V value)
指定された値と指定されたキーをこのマップに関連付けます (任意のオペレーション)。 |
void |
putAll(Map<? extends K,? extends V> m)
指定されたマップのすべてのマッピングをこのマップにコピーします (任意のオペレーション)。 |
V |
remove(Object key)
キーのマッピングがある場合に、そのマッピングをこのマップから削除します (任意のオペレーション)。 |
int |
size()
マップ内のキー値マッピングの数を返します。 |
String |
toString()
このマップの文字列表現を返します。 |
Collection<V> |
values()
このマップに含まれる値の Collection ビューを返します。 |
クラス java.lang.Object から継承されたメソッド |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
コンストラクタの詳細 |
---|
protected AbstractMap()
メソッドの詳細 |
---|
public int size()
この実装は entrySet().size() を返します。
Map<K,V>
内の size
public boolean isEmpty()
この実装は size() == 0 の結果を返します。
Map<K,V>
内の isEmpty
public boolean containsValue(Object value)
この実装は entrySet() の内容を次々調べ、指定された値を持つエントリを検索します。そのようなエントリが見つかった場合は、true を返します。目的のエントリが見つからずに反復が終了した場合は、false を返します。この実装では、マップのサイズに正比例した時間が必要なことに注意してください。
Map<K,V>
内の containsValue
value
- マップにあるかどうかを判定される値
ClassCastException
- 値がマップに適さない型の場合 (省略可能)
NullPointerException
- 指定された値が null であり、このマップが null 値を許可しない場合 (省略可能)public boolean containsKey(Object key)
この実装は entrySet() の内容を次々調べ、指定されたキーを持つエントリを検索します。そのようなエントリが見つかった場合は、true を返します。目的のエントリが見つからずに反復が終了した場合は、false を返します。この実装では、マップのサイズに正比例した時間が必要なことに注意してください。 多くの実装は、このメソッドをオーバーライドします。
Map<K,V>
内の containsKey
key
- マップにあるかどうかが判定されるキー
ClassCastException
- キーがマップに適さない型の場合 (省略可能)
NullPointerException
- 指定されたキーが null であり、このマップが null キーを許可しない場合 (省略可能)public V get(Object key)
null
を返します。
つまり、このメソッドは、(key==null ? k==null : key.equals(k))
となるキー k
から値 v
へのマッピングがこのマップに含まれている場合は v
を返し、それ以外の場合は null
を返します。このようなマッピングが 1 つだけあります。
このマップが null 値を許可する場合、戻り値の null
は、マップがキーのマッピングを保持していないことを示すとはかぎりません。つまり、マップが明示的にキーを null
にマップすることもあります。containsKey
オペレーションを使うと、この 2 つの場合を区別できます。
この実装は entrySet() の内容を次々調べ、指定されたキーを持つエントリを検索します。そのようなエントリが見つかった場合は、エントリの値を返します。目的のエントリが見つからずに反復が終了した場合は、null を返します。この実装では、マップのサイズに正比例した時間が必要なことに注意してください。 多くの実装は、このメソッドをオーバーライドします。
Map<K,V>
内の get
key
- 関連付けられた値が返されるキー
null
ClassCastException
- キーがマップに適さない型の場合 (省略可能)
NullPointerException
- 指定されたキーが null であり、このマップが null キーを許可しない場合 (省略可能)public V put(K key, V value)
m.containsKey(k)
が true を返す場合に限り、マップ m は、キー k のマッピングを含むと言えます。
この実装は、常に UnsupportedOperationException をスローします。
Map<K,V>
内の put
key
- 指定された値が関連付けられるキーvalue
- 指定されたキーに関連付けられる値
UnsupportedOperationException
- put オペレーションがこのマップでサポートされない場合
ClassCastException
- 指定されたキーまたは値のクラスが原因で、このマップにそれらを格納できない場合
NullPointerException
- 指定されたキーまたは値が null であり、このマップが null のキーまたは値を許可しない場合
IllegalArgumentException
- 指定されたキーまたは値のあるプロパティーが原因で、このマップにそれらを格納できない場合public V remove(Object key)
このマップが以前にこのキーを関連付けていた値を返します。キーに対するマッピングがマップになかった場合は null を返します。
このマップが null 値を許可する場合、戻り値の null は、マップがキーのマッピングを保持していなかったことを示すとはかぎりません。つまり、マップが明示的にキーを null にマップしていた可能性もあります。
一度呼び出しが返れば、マップは指定されたキーのマッピングを含みません。
この実装は entrySet() の内容を次々調べ、指定されたキーを持つエントリを検索します。そのようなエントリが見つかった場合は、エントリの値を実装の getValue オペレーションで取得し、エントリをコレクションとその基になるマップから削除します。削除は反復子の remove オペレーションを使い、保存された値が返されます。目的のエントリが見つからずに反復が終了した場合は、null を返します。この実装では、マップのサイズに正比例した時間が必要なことに注意してください。 多くの実装は、このメソッドをオーバーライドします。
entrySet 反復子が remove メソッドをサポートしないで、このマップが指定されたキーのマッピングを保持する場合は、この実装は UnsupportedOperationException をスローします。
Map<K,V>
内の remove
key
- マッピングがマップから削除されるキー
UnsupportedOperationException
- remove オペレーションがこのマップでサポートされない場合
ClassCastException
- キーがマップに適さない型の場合 (省略可能)
NullPointerException
- 指定されたキーが null であり、このマップが null キーを許可しない場合 (省略可能)public void putAll(Map<? extends K,? extends V> m)
put(k, v)
を呼び出した場合と同じです。オペレーションの進行中に、指定されたマップが変更された場合の、このオペレーションの動作は定義されていません。
この実装は、指定されたマップの entrySet() コレクションの内容を次々調べ、反復によって各エントリが返されるごとに、このマップの put オペレーションを 1 回呼び出します。
このマップが put オペレーションをサポートせず、指定マップが空でない場合、この実装は UnsupportedOperationException をスローします。
Map<K,V>
内の putAll
m
- マップに格納されるマッピング
UnsupportedOperationException
- putAll オペレーションがこのマップでサポートされない場合
ClassCastException
- 指定されたマップ内のキーまたは値のクラスが原因で、マップに格納できない場合
NullPointerException
- 指定されたマップが null である場合、またはこのマップが null のキーまたは値を許可せず、指定されたマップに null のキーまたは値が含まれている場合
IllegalArgumentException
- 指定されたマップ内のあるキーまたは値のあるプロパティーが原因で、マップに格納できない場合public void clear()
この実装は、entrySet().clear() を呼び出します。
entrySet が clear オペレーションをサポートしない場合、この実装は UnsupportedOperationException をスローします。
Map<K,V>
内の clear
UnsupportedOperationException
- clear オペレーションがこのマップでサポートされない場合public Set<K> keySet()
Set
ビューを返します。セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。セットの反復処理中にマップが変更された場合、反復処理の結果は定義されません (反復子自身の remove オペレーションを除く)。削除は、Iterator.remove、Set.remove、removeAll、retainAll、および clear の各オペレーションを通して行います。Set は、add オペレーションや addAll オペレーションはサポートしていません。
この実装は、AbstractSet
をサブクラス化するセットを返します。このサブクラスの iterator メソッドは、このマップの entrySet() 反復子の「ラッパーオブジェクト」を返します。size メソッドはこのマップの size メソッドに委譲し、contains メソッドは、このマップの containsKey メソッドに委譲します。
Set は、このメソッドが最初に呼び出されたときに作成され、それに続くすべての呼び出しに応じて返されます。同期は一切行われません。このため、わずかながら、このメソッドへの複数の呼び出しに対して、同じ Set が返されない可能性があります。
Map<K,V>
内の keySet
public Collection<V> values()
Collection
ビューを返します。コレクションはマップと連動しているので、マップに対する変更はコレクションに反映され、またコレクションに対する変更はマップに反映されます。コレクションの反復処理中にマップが変更された場合、反復処理の結果は定義されません (反復子自身の remove オペレーションを除く)。コレクションは要素の削除をサポートしており、対応するマッピングをマップから削除できます。 削除は、Iterator.remove、Collection.remove、removeAll、retainAll、および clear オペレーションを通して行います。Set は、add オペレーションや addAll オペレーションはサポートしていません。
この実装は、AbstractCollection
をサブクラス化するコレクションを返します。このサブクラスの iterator メソッドは、このマップの entrySet() 反復子の「ラッパーオブジェクト」を返します。size メソッドはこのマップの size メソッドに委譲し、contains メソッドは、このマップの containsValue メソッドに委譲します。
コレクションは、このメソッドが最初に呼び出されたときに作成され、それに続くすべての呼び出しに応じて返されます。同期は一切行われません。このため、わずかながら、このメソッドへの複数の呼び出しに対して、同じコレクションが返されない可能性があります。
Map<K,V>
内の values
public abstract Set<Map.Entry<K,V>> entrySet()
Map
の記述:Set
ビューを返します。セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。セットに対する反復の処理中にマップが変更された場合は、反復処理の結果は定義されません (反復子自身の remove オペレーション、または反復子により返されるマップエントリに対する setValue オペレーションを除く)。 セットは、要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.remove、Set.remove、removeAll、retainAll、および clear の各オペレーションを通して行います。Set は、add オペレーションや addAll オペレーションはサポートしていません。
Map<K,V>
内の entrySet
public boolean equals(Object o)
この実装は、指定されたオブジェクトがこのマップ自身であるかどうかを最初に調べます。このマップである場合、実装は true を返し指定されたオブジェクトについて、このマップと同じサイズのマップであるかどうかを調べます。同じサイズのマップでない場合は false を返します。同じサイズのマップである場合は、このマップの entrySet コレクションの内容を次々調べて、指定されたマップに、このマップが格納している各マッピングが含まれているかどうかを調べます。指定されたマップにそのようなマッピングがない場合は、false が返されます。反復が完了した場合に true が返されます。
Map<K,V>
内の equals
Object
内の equals
o
- このマップと等しいかどうかを比較するオブジェクト
Object.hashCode()
,
Hashtable
public int hashCode()
Object.hashCode()
の一般規約で要求されるとおりに、任意の 2 つのマップ m1 と m2 について、m1.equals(m2) の場合 m1.hashCode()==m2.hashCode() になります。
この実装は、セットの各要素 (エントリ) の hashCode()
を呼び出して、entrySet() の内容を次々調べ、結果を加算していきます。
Map<K,V>
内の hashCode
Object
内の hashCode
Map.Entry.hashCode()
,
Object.equals(Object)
,
Set.equals(Object)
public String toString()
String.valueOf(Object)
を実行したかのように文字列に変換されます。
Object
内の toString
protected Object clone() throws CloneNotSupportedException
Object
内の clone
CloneNotSupportedException
- オブジェクトのクラスが Cloneable
インタフェースをサポートしていない場合。clone
メソッドをオーバーライドしたサブクラスも、インスタンスを複製できないことを示すためにこの例外をスローすることがあるCloneable
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。