- 型パラメータ:
- K- このマップで保持されるキーの型
- V- マップされる値の型
- すべての実装されたインタフェース:
- Map<K,- V> 
- 直系の既知のサブクラス:
- ConcurrentHashMap,- ConcurrentSkipListMap,- EnumMap,- HashMap,- IdentityHashMap,- TreeMap,- WeakHashMap
Mapインタフェースのスケルトン実装を提供し、このインタフェースを実装するのに必要な作業量を最小限に抑えます。
 変更不可能なマップを実装するには、このクラスを拡張して、マップのマッピングのセット・ビューを返すentrySetメソッドを実装する必要があります。 通常、返されたセットはAbstractSetの上に実装されます。 このセットではaddメソッドとremoveメソッドをサポートすべきではありません。また、セットのイテレータではremoveメソッドをサポートすべきではありません。 
 
変更可能なマップを実装するには、上記に加えて、このクラスのputメソッドをオーバーライドします(オーバーライドしなかった場合は、UnsupportedOperationExceptionがスローされます)。また、上記に加えて、entrySet().iterator()で返されるイテレータにremoveメソッドを実装する必要があります。
 
Mapインタフェースの仕様で推奨されているように、通常は、引数なしのvoidコンストラクタ、および引数にマップをとるコンストラクタを提供してください。
 
実装の詳細については、このクラスの抽象メソッド以外の各メソッドのドキュメントを参照してください。 より効率的な実装ができるマップの場合は、これらのメソッドをオーバーライドしてもかまいません。
このクラスは、Java Collections Frameworkのメンバーです。
- 導入されたバージョン:
- 1.2
- 関連項目:
- 
ネストされたクラスのサマリーネストされたクラス修飾子と型クラス説明static classキーと値を保持するエントリ。static classキーと値を保守する変更不可のエントリ。
- 
コンストラクタのサマリーコンストラクタ
- 
メソッドのサマリー修飾子と型メソッド説明voidclear()マップからマッピングをすべて削除します(オプションの操作)。protected Objectclone()このAbstractMapインスタンスのシャロー・コピーを返します。キーと値は、それ自体は複製されません。booleancontainsKey(Object key) 指定されたキーのマッピングがこのマップに含まれている場合にtrueを返します。booleancontainsValue(Object value) このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrueを返します。boolean指定されたオブジェクトがこのマップと等しいかどうかを比較します。指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnullを返します。inthashCode()マップのハッシュ・コード値を返します。booleanisEmpty()このマップがキーと値のマッピングを保持しない場合にtrueを返します。keySet()このマップに含まれるキーのSetビューを返します。指定された値と指定されたキーをこのマップで関連付けます(オプションの操作)。void指定されたマップのすべてのマッピングをこのマップにコピーします(オプションの操作)。このマップからキーのマッピング(ある場合)を削除します(オプションの操作)。intsize()このマップ内のキー値マッピングの数を返します。toString()このマップの文字列表現を返します。values()このマップに含まれる値のCollectionビューを返します。インタフェース java.util.Mapで宣言されたメソッドcompute, computeIfAbsent, computeIfPresent, entrySet, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
- 
コンストラクタの詳細- 
AbstractMapprotected AbstractMap()唯一のコンストラクタです。 (サブクラスのコンストラクタによる呼出し用で、通常は暗黙的に呼び出されます。)
 
- 
- 
メソッドの詳細- 
sizepublic int size()このマップ内のキー値マッピングの数を返します。 マップ内にInteger.MAX_VALUEより多くの要素がある場合は、Integer.MAX_VALUEを返します。
- 
isEmptypublic boolean isEmpty()このマップがキーと値のマッピングを保持しない場合にtrueを返します。
- 
containsValuepublic boolean containsValue(Object value) このマップが1つまたは複数のキーと指定された値をマッピングしている場合にtrueを返します。 より正式には、このマップがObjects.equals(value, v)のような値vへの少なくとも1つのマッピングを含む場合に限り、trueを返します。Mapインタフェースのほとんどの実装で、このオペレーションにかかる時間はマップのサイズに正比例します。- 定義:
- インタフェースMap<K,内のV> containsValue
- 実装要件:
- この実装はentrySet()の内容を次々調べ、指定された値を持つエントリを検索します。 そのようなエントリが見つかった場合は、trueを返します。 目的のエントリが見つからずに反復が終了した場合は、falseを返します。 この実装では、マップのサイズに正比例した時間が必要なことに注意してください。
- パラメータ:
- value- このマップにあるかどうかが判定される値
- 戻り値:
- このマップが1つまたは複数のキーを指定された値にマッピングしている場合はtrue
- 例外:
- ClassCastException- 値がマップに適さない型の場合(オプション)
- NullPointerException- 指定された値がnullであり、このマップがnull値を許可しない場合(オプション)
 
- 
containsKeypublic boolean containsKey(Object key) 指定されたキーのマッピングがこのマップに含まれている場合にtrueを返します。 より正式には、このマップがObjects.equals(key, k)のようなキーkのマッピングを含む場合に限り、trueを返します。 (このようなマッピングは1つのみ存在できます。)- 定義:
- インタフェースMap<K,内のV> containsKey
- 実装要件:
- この実装はentrySet()の内容を次々調べ、指定されたキーを持つエントリを検索します。 そのようなエントリが見つかった場合は、trueを返します。 目的のエントリが見つからずに反復が終了した場合は、falseを返します。 この実装では、マップのサイズに正比例した時間が必要なことに注意してください。多くの実装は、このメソッドをオーバーライドします。
- パラメータ:
- key- このマップ内にあるかどうかが判定されるキー
- 戻り値:
- 指定されたキーのマッピングがこのマップに含まれている場合はtrue
- 例外:
- ClassCastException- このキーがこのマップに適さない型の場合(オプション)
- NullPointerException- 指定されたキーがnullであり、このマップがnullキーを許可しない場合(オプション)
 
- 
get指定されたキーがマップされている値を返します。そのキーのマッピングがこのマップに含まれていない場合はnullを返します。より正式には、このマップにキー kからObjects.equals(key, k)のような値vへのマッピングが含まれている場合、このメソッドはvを返します; それ以外の場合は、nullを返します。 (このようなマッピングは1つのみ存在できます。)このマップがnull値を許可する場合、戻り値の nullは、マップがキーのマッピングを保持していないことを示すとはかぎりません。つまり、マップが明示的にキーをnullにマップすることもあります。containsKey操作を使うと、これら2つのケースを見分けることができます。- 定義:
- インタフェースMap<K,内のV> get
- 実装要件:
- この実装はentrySet()の内容を次々調べ、指定されたキーを持つエントリを検索します。 そのようなエントリが見つかった場合は、エントリの値を返します。 目的のエントリが見つからずに反復が終了した場合は、nullを返します。 この実装では、マップのサイズに正比例した時間が必要なことに注意してください。多くの実装は、このメソッドをオーバーライドします。
- パラメータ:
- key- 関連付けられた値が返されるキー
- 戻り値:
- 指定されたキーがマップされている値。そのキーのマッピングがこのマップに含まれていない場合はnull
- 例外:
- ClassCastException- このキーがこのマップに適さない型の場合(オプション)
- NullPointerException- 指定されたキーがnullであり、このマップがnullキーを許可しない場合(オプション)
 
- 
put指定された値と指定されたキーをこのマップで関連付けます(オプションの操作)。 マップにすでにこのキーに対するマッピングがある場合、古い値は指定された値に置き換えられます。m.containsKey(k)がtrueを返す場合に限り、マップmはキーkのマッピングを含むと言えます。- 定義:
- インタフェースMap<K,内のV> put
- 実装要件:
- この実装は、常にUnsupportedOperationExceptionをスローします。
- パラメータ:
- key- 指定された値が関連付けられるキー
- value- 指定されたキーに関連付けられる値
- 戻り値:
- keyに以前に関連付けられていた値。- keyのマッピングが存在しなかった場合は- null。 (実装が- null値をサポートしている場合、戻り値- nullは、以前にマップが- nullと- keyを関連付けていたことを示す場合もある。)
- 例外:
- UnsupportedOperationException-- putオペレーションがこのマップでサポートされない場合
- ClassCastException- 指定されたキーまたは値のクラスが原因で、このマップにそれらを格納できない場合
- NullPointerException- 指定されたキーまたは値がnullであり、このマップがnullのキーまたは値を許可しない場合
- IllegalArgumentException- 指定されたキーまたは値のあるプロパティが原因で、このマップにそれらを格納できない場合
 
- 
removeこのマップからキーのマッピング(ある場合)を削除します(オプションの操作)。 より正式には、このマップに、kからObjects.equals(key, k)のような値vへのマッピングが含まれている場合、そのマッピングは削除されます。 マップはこのようなマッピングを1つだけ含めることができます。このマップが以前にこのキーを関連付けていた値を返します。キーに対するマッピングがマップになかった場合は nullを返します。このマップがnull値を許可する場合、戻り値の nullは、マップがキーのマッピングを保持していなかったことを示すとはかぎりません。つまり、マップが明示的にキーをnullにマップしていた可能性もあります。呼出しが戻ると、マップは指定されたキーのマッピングを含まなくなります。 - 定義:
- インタフェースMap<K,内のV> remove
- 実装要件:
- この実装はentrySet()の内容を次々調べ、指定されたキーを持つエントリを検索します。 そのようなエントリが見つかった場合は、エントリの値を実装のgetValueオペレーションで取得し、エントリをコレクションとその基になるマップから削除します。削除はイテレータのremoveオペレーションを使い、保存された値が返されます。 目的のエントリが見つからずに反復が終了した場合は、nullを返します。 この実装では、マップのサイズに正比例した時間が必要なことに注意してください。多くの実装は、このメソッドをオーバーライドします。entrySetイテレータがremoveメソッドをサポートしないで、このマップが指定されたキーのマッピングを保持する場合は、この実装はUnsupportedOperationExceptionをスローします。
- パラメータ:
- key- マッピングがマップから削除されるキー
- 戻り値:
- keyに以前に関連付けられていた値。- keyのマッピングが存在しなかった場合は- null。
- 例外:
- UnsupportedOperationException-- removeオペレーションがこのマップでサポートされない場合
- ClassCastException- このキーがこのマップに適さない型の場合(オプション)
- NullPointerException- 指定されたキーがnullであり、このマップがnullキーを許可しない場合(オプション)
 
- 
putAll指定されたマップのすべてのマッピングをこのマップにコピーします(オプションの操作)。 この呼出しの効果は、指定されたマップ内のキーkから値vへのマッピングごとに、このマップに対してput(k, v)を1回呼び出した場合と同じです。 オペレーションの進行中に、指定されたマップが変更された場合の、このオペレーションの動作は定義されていません。- 定義:
- インタフェースMap<K,内のV> putAll
- 実装要件:
- この実装は、指定されたマップのentrySet()コレクションの内容を次々調べ、反復によって各エントリが返されるごとに、このマップのputオペレーションを1回呼び出します。このマップが putオペレーションをサポートせず、指定マップが空でない場合、この実装はUnsupportedOperationExceptionをスローします。
- パラメータ:
- m- このマップに格納されるマッピング
- 例外:
- UnsupportedOperationException-- putAllオペレーションがこのマップでサポートされない場合
- ClassCastException- 指定されたマップ内のキーまたは値のクラスが原因で、このマップにそれらを格納できない場合
- NullPointerException- 指定されたマップがnullである場合、またはこのマップがnullのキーまたは値を許可せず、指定されたマップにnullのキーまたは値が含まれている場合
- IllegalArgumentException- 指定されたマップ内のキーまたは値のあるプロパティが原因で、このマップにそれらを格納できない場合
 
- 
clearpublic void clear()マップからマッピングをすべて削除します(オプションの操作)。 この呼出しが戻ると、マップは空になります。- 定義:
- インタフェースMap<K,内のV> clear
- 実装要件:
- この実装は、entrySet().clear()を呼び出します。entrySetがclearオペレーションをサポートしない場合、この実装はUnsupportedOperationExceptionをスローします。
- 例外:
- UnsupportedOperationException-- clearオペレーションがこのマップでサポートされない場合
 
- 
keySetこのマップに含まれるキーのSetビューを返します。 セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。 セットの反復処理中にマップが変更された場合、反復処理の結果は定義されていません(イテレータ自身のremoveオペレーションを除く)。 セットは要素の削除をサポートします。Iterator.remove、Set.remove、removeAll、retainAll、およびclearオペレーションで対応するマッピングをマップから削除します。addまたはaddAll操作はサポートされていません。- 定義:
- インタフェースMap<K,内のV> keySet
- 実装要件:
- この実装は、AbstractSetをサブクラス化するセットを返します。 このサブクラスのiteratorメソッドは、このマップのentrySet()イテレータの「ラッパー・オブジェクト」を返します。sizeメソッドはこのマップのsizeメソッドに委譲し、containsメソッドは、このマップのcontainsKeyメソッドに委譲します。Setは、このメソッドが最初に呼び出されたときに作成され、それに続くすべての呼出しに応じて返されます。 同期は一切行われません。このため、わずかながら、このメソッドへの複数の呼出しに対して、同じSetが返されない可能性があります。 
- 戻り値:
- マップに含まれているキーのセット・ビュー
 
- 
valuespublic Collection<V> values()このマップに含まれる値のCollectionビューを返します。 コレクションはマップと連動しているので、マップに対する変更はコレクションに反映され、またコレクションに対する変更はマップに反映されます。 コレクションの反復処理中にマップが変更された場合、反復処理の結果は定義されません(イテレータ自身のremoveオペレーションを除く)。 コレクションは要素の削除をサポートしており、対応するマッピングをマップから削除できます。削除は、Iterator.remove、Collection.remove、removeAll、retainAll、およびclearオペレーションを通して行います。addまたはaddAll操作はサポートされていません。- 定義:
- インタフェースMap<K,内のV> values
- 実装要件:
- この実装は、AbstractCollectionをサブクラス化するコレクションを返します。 このサブクラスのiteratorメソッドは、このマップのentrySet()イテレータの「ラッパー・オブジェクト」を返します。sizeメソッドはこのマップのsizeメソッドに委譲し、containsメソッドは、このマップのcontainsValueメソッドに委譲します。コレクションは、このメソッドが最初に呼び出されたときに作成され、それに続くすべての呼出しに応じて返されます。 同期は一切行われません。このため、わずかながら、このメソッドへの複数の呼出しに対して、同じコレクションが返されない可能性があります。 
- 戻り値:
- マップ内に含まれている値のコレクション・ビュー
 
- 
equalspublic boolean equals(Object o) 指定されたオブジェクトがこのマップと等しいかどうかを比較します。 指定されたオブジェクトもマップであり、2つのマップが同じマッピングを表す場合にtrueを返します。 つまり、m1.entrySet().equals(m2.entrySet())である場合、2つのマップm1とm2は同じマッピングを表します。 これにより、Mapインタフェースの実装が異なる場合でも、equalsメソッドが正しく動作することが保証されます。- 定義:
- インタフェースMap<K,内のV> equals
- オーバーライド:
- equals、クラス- Object
- 実装要件:
- この実装は、指定されたオブジェクトがこのマップ自身であるかどうかを最初に調べます。このマップである場合、実装はtrueを返します。 次に、指定されたオブジェクトについて、このマップと同じサイズのマップであるかどうかを調べます。同じサイズのマップでない場合はfalseを返します。 同じサイズのマップである場合は、このマップのentrySetコレクションの内容を次々調べて、指定されたマップに、このマップが格納している各マッピングが含まれているかどうかを調べます。 指定されたマップにそのようなマッピングがない場合は、falseが返されます。 反復が完了した場合にtrueが返されます。
- パラメータ:
- o- このマップと等しいかどうかが比較されるオブジェクト
- 戻り値:
- 指定されたオブジェクトがこのマップと等しい場合はtrue
- 関連項目:
 
- 
hashCodepublic int hashCode()マップのハッシュ・コード値を返します。 マップのハッシュ・コードは、そのマップのentrySet()ビュー内の各エントリのハッシュ・コードの合計になるように定義されます。 これにより、Object.hashCode()の一般規約によって要求されるように、任意の2つのマップm1とm2でm1.equals(m2)であれば、m1.hashCode()==m2.hashCode()となることが保証されます。
- 
toStringpublic String toString()このマップの文字列表現を返します。 文字列表現は、キーと値のマッピングをマップのentrySetビューのイテレータが返した順に中カッコ("{}")で囲んで示すリストです。 隣接するマッピングは、文字", "(カンマと空白文字)によって区切られます。 各キーと値のマッピングは、キーのあとに等号("=")が続き、その次にキーと関連付けられる値が続くという形で描画されます。 キーと値は、String.valueOf(Object)により文字列に変換されます。
- 
cloneprotected Object clone() throws CloneNotSupportedExceptionこのAbstractMapインスタンスのシャロー・コピーを返します。キーと値は、それ自体は複製されません。- オーバーライド:
- clone、クラス- Object
- 戻り値:
- このマップのシャロー・コピー
- 例外:
- CloneNotSupportedException- オブジェクトのクラスが- Cloneableインタフェースをサポートしていない場合。- cloneメソッドをオーバーライドしたサブクラスも、インスタンスを複製できないことを示すためにこの例外をスローすることがある。
- 関連項目:
 
 
-