Foundation 1.1.2

java.util
クラス AbstractMap

java.lang.Object
  上位を拡張 java.util.AbstractMap
すべての実装されたインタフェース:
Map
直系の既知のサブクラス:
HashMap, IdentityHashMap, TreeMap, WeakHashMap

public abstract class AbstractMap
extends Object
implements Map

このクラスは、Map インタフェースのスケルトン実装を提供し、このインタフェースを実装するのに必要な作業量を最小限に抑えます。

変更不可能なマップを実装するには、このクラスを拡張して、マップのマッピングのセットビューを返す entrySet メソッドを実装する必要があります。通常、返されたセットは AbstractSet の上に実装されます。このセットでは add メソッドと remove メソッドをサポートするべきではありません。また、セットの反復子では remove メソッドをサポートするべきではありません。

変更可能なマップを実装するには、上記に加えて、このクラスの put メソッドをオーバーライドします (オーバーライドしなかった場合は、UnsupportedOperationException がスローされます)。また、上記に加えて、entrySet().iterator() で返される反復子に remove メソッドを実装する必要があります。

Map インタフェースの仕様で推奨されているように、通常は、引数なしの void コンストラクタ、および引数にマップをとるコンストラクタを提供してください。

実装の詳細については、このクラスの abstract メソッド以外の各メソッドのドキュメントを参照してください。より効率的な実装ができるマップの場合は、これらのメソッドをオーバーライドしてもかまいません。

このクラスは、Java Collections Framework のメンバーです。

導入されたバージョン:
1.2
関連項目:
Map, Collection

入れ子のクラスの概要
 
インタフェース java.util.Map から継承された入れ子のクラス/インタフェース
Map.Entry
 
コンストラクタの概要
protected AbstractMap()
          唯一のコンストラクタです。
 
メソッドの概要
 void clear()
          マップからマッピングをすべて削除します (任意のオペレーション)。
protected  Object clone()
          AbstractMap のインスタンスのシャローコピーを返します。
 boolean containsKey(Object key)
          マップが指定のキーのマッピングを保持する場合に true を返します。
 boolean containsValue(Object value)
          このマップが 1 つ以上のキーにこの値をマップする場合は true を返します。
abstract  Set entrySet()
          マップ内に保持されているマッピングのセットビューを返します。
 boolean equals(Object o)
          指定されたオブジェクトがこのマップと等しいかどうかを比較します。
 Object get(Object key)
          マップが指定されたキーをマップする値を返します。
 int hashCode()
          マップのハッシュコード値を返します。
 boolean isEmpty()
          マップがキーと値のマッピングを保持しない場合に true を返します。
 Set keySet()
          マップに含まれているキーの Set ビューを返します。
 Object put(Object key, Object value)
          指定された値と指定されたキーをこのマップに関連付けます (任意のオペレーション)。
 void putAll(Map t)
          指定されたマップのすべてのマッピングをこのマップにコピーします (任意のオペレーション)。
 Object remove(Object key)
          このキーにマッピングがある場合に、そのマッピングをマップから削除します (任意のオペレーション)。
 int size()
          マップ内のキー値マッピングの数を返します。
 String toString()
          このマップの文字列表現を返します。
 Collection values()
          マップ内に保持されている値のコレクションビューを返します。
 
クラス java.lang.Object から継承されたメソッド
finalize, getClass, notify, notifyAll, wait, wait, wait
 

コンストラクタの詳細

AbstractMap

protected AbstractMap()
唯一のコンストラクタです。サブクラスのコンストラクタによる呼び出し用で、通常は暗黙的に呼び出されます。

メソッドの詳細

size

public int size()
マップ内のキー値マッピングの数を返します。マップに Integer.MAX_VALUE より多くの要素がある場合は、Integer.MAX_VALUE を返します。

この実装は entrySet().size() を返します。

定義:
インタフェース Map 内の size
戻り値:
マップ内のキー値マッピングの数

isEmpty

public boolean isEmpty()
マップがキーと値のマッピングを保持しない場合に true を返します。

この実装は size() == 0 の結果を返します。

定義:
インタフェース Map 内の isEmpty
戻り値:
マップがキーと値のマッピングを保持しない場合は true

containsValue

public boolean containsValue(Object value)
このマップが 1 つ以上のキーにこの値をマップする場合は true を返します。つまり、マップに、(value==null ? v==null : value.equals(v)) となる値 v へのマッピングが 1 つ以上ある場合にだけ true を返します。ほとんどのマップの実装では、このオペレーションはマップのサイズに正比例した時間がかかると考えられます。

この実装は entrySet() の内容を次々調べ、指定された値を持つエントリを検索します。そのようなエントリが見つかった場合は、true を返します。目的のエントリが見つからずに反復が終了した場合は、false を返します。この実装では、マップのサイズに正比例した時間が必要なことに注意してください。

定義:
インタフェース Map 内の containsValue
パラメータ:
value - マップにあるかどうかを判定される値
戻り値:
このマップが 1 つ以上のキーにこの値をマッピングする場合は true

containsKey

public boolean containsKey(Object key)
マップが指定のキーのマッピングを保持する場合に true を返します。

この実装は entrySet() の内容を次々調べ、指定されたキーを持つエントリを検索します。そのようなエントリが見つかった場合は、true を返します。目的のエントリが見つからずに反復が終了した場合は、false を返します。この実装では、マップのサイズに正比例した時間が必要なことに注意してください。多くの実装は、このメソッドをオーバーライドします。

定義:
インタフェース Map 内の containsKey
パラメータ:
key - マップにあるかどうかが判定されるキー
戻り値:
マップが指定されたキーのマッピングを保持する場合は true
例外:
NullPointerException - キーが null のときに、マップが null キーを許可しない場合

get

public Object get(Object key)
マップが指定されたキーをマップする値を返します。マップがこのキーのマッピングを保持していない場合は null を返します。戻り値の null は、マップがキーのマッピングを保持していないことを示すとはかぎりません。つまり、マップが明示的にキーを null にマップすることもあります。containsKey オペレーションを使うと、こうした 2 つの場合を見分けることができます。

この実装は entrySet() の内容を次々調べ、指定されたキーを持つエントリを検索します。そのようなエントリが見つかった場合は、エントリの値を返します。目的のエントリが見つからずに反復が終了した場合は、null を返します。この実装では、マップのサイズに正比例した時間が必要なことに注意してください。多くの実装は、このメソッドをオーバーライドします。

定義:
インタフェース Map 内の get
パラメータ:
key - 関連付けられている値が返されるキー
戻り値:
マップが指定されたキーとマップする値
例外:
NullPointerException - キーが null のときに、マップが null キーを許可しない場合
関連項目:
containsKey(Object)

put

public Object put(Object key,
                  Object value)
指定された値と指定されたキーをこのマップに関連付けます (任意のオペレーション)。マップが以前にこのキーのマッピングを保持していた場合、古い値が置き換えられます。

この実装は、常に UnsupportedOperationException をスローします。

定義:
インタフェース Map 内の put
パラメータ:
key - 指定の値が関連付けられるキー
value - 指定のキーに関連付けられる値
戻り値:
指定されたキーと関連付けられていた以前の値。キーのマッピングがなかった場合は nullnull の戻り値は、実装が null 値をサポートしている場合、指定されたキーに対して null が以前関連付けられていたことを示すこともある
例外:
UnsupportedOperationException - put オペレーションがマップによってサポートされていない場合
ClassCastException - 指定されたキーまたは値のクラスが原因で、マップに格納できない場合
IllegalArgumentException - このキーまたは値 * の特性が原因で、マップに格納できない場合
NullPointerException - マップが null キーや null 値を許可しないときに、指定されたキーまたは値が null の場合

remove

public Object remove(Object key)
このキーにマッピングがある場合に、そのマッピングをマップから削除します (任意のオペレーション)。

この実装は entrySet() の内容を次々調べ、指定されたキーを持つエントリを検索します。そのようなエントリが見つかった場合は、エントリの値を実装の getValue オペレーションで取得し、エントリを Collection とその基になるマップから削除します。削除は反復子の remove オペレーションを使い、保存された値が返されます。目的のエントリが見つからずに反復が終了した場合は、null を返します。この実装では、マップのサイズに正比例した時間が必要なことに注意してください。多くの実装は、このメソッドをオーバーライドします。

entrySet 反復子が remove メソッドをサポートしないで、このマップが指定されたキーのマッピングを保持する場合は、この実装は UnsupportedOperationException をスローします。

定義:
インタフェース Map 内の remove
パラメータ:
key - マッピングがマップから削除されるキー
戻り値:
指定のキーに関連付けられていた以前の値。キーにエントリがなかった場合は nullnull の戻り値は、実装が null 値をサポートしている場合、指定されたキーに以前マップが null を関連付けていたことを示す場合もある
例外:
UnsupportedOperationException - このマップが remove オペレーションをサポートしない場合

putAll

public void putAll(Map t)
指定されたマップのすべてのマッピングをこのマップにコピーします (任意のオペレーション)。これにより、マップが指定されたマップ内に現在あるキーのすべてに対して持っていたマッピングが置き換えられます。

この実装は、指定されたマップの entrySet() コレクションの内容を次々調べ、反復によって各エントリが返されるごとに、このマップの put オペレーションを 1 回呼び出します。

このマップが put オペレーションをサポートせず、指定マップが空でない場合、この実装は UnsupportedOperationException をスローします。

定義:
インタフェース Map 内の putAll
パラメータ:
t - マップに格納されるマッピング
例外:
UnsupportedOperationException - このマップが putAll オペレーションをサポートしていない場合
ClassCastException - 指定されたマップ内のキーまたは値のクラスが原因で、マップに格納できない場合
IllegalArgumentException - 指定されたマップ内のキーまたは値の特性が原因で、マップに格納できない場合
NullPointerException - 指定されたマップが null である場合、またはこのマップが null のキーまたは値を許可せず、指定されたマップに null のキーまたは値が含まれている場合

clear

public void clear()
マップからマッピングをすべて削除します (任意のオペレーション)。

この実装は、entrySet().clear() を呼び出します。 entrySetclear オペレーションをサポートしない場合、この実装は UnsupportedOperationException をスローします。

定義:
インタフェース Map 内の clear
例外:
UnsupportedOperationException - clear がマップによってサポートされていない場合

keySet

public Set keySet()
マップに含まれているキーの Set ビューを返します。Set はマップと連動しているので、マップに対する変更は Set に反映され、また、Set に対する変更はマップに反映されます。Set の繰り返し処理中にマップが変更された場合は、繰り返し処理の結果は定義されません。Set は要素の削除をサポートしており、対応するエントリをマップから削除できます。削除は、Iterator.remove、Set.remove、removeAll、retainAll、および clear の各オペレーションを通して行います。Set は、add オペレーションや addAll オペレーションはサポートしていません。

この実装は、AbstractSet をサブクラス化する Set を返します。このサブクラスの iterator メソッドは、このマップの entrySet() 反復子の「ラッパーオブジェクト」を返します。size メソッドはこのマップの size メソッドに委譲し、contains メソッドは、このマップの containsKey メソッドに委譲します。

Set は、このメソッドが最初に呼び出されたときに作成され、それに続くすべての呼び出しに応じて返されます。同期は一切行われません。このため、わずかながら、このメソッドへの複数の呼び出しに対して、同じ Set が返されない可能性があります。

定義:
インタフェース Map 内の keySet
戻り値:
マップに含まれているキーの Set ビュー

values

public Collection values()
マップ内に保持されている値のコレクションビューを返します。コレクションはマップと連動しているので、マップに対する変更はコレクションに反映され、またコレクションに対する変更はマップに反映されます。コレクションでの繰り返し処理の進行中にマップが変更された場合、繰り返し処理の結果は定義されません。コレクションは要素の削除をサポートしており、対応するエントリをマップから削除できます。削除は、Iterator.removeCollection.removeremoveAllretainAll、および clear の各オペレーションを通して行います。Set は、add オペレーションや addAll オペレーションはサポートしていません。

この実装は、abstract コレクションをサブクラス化するコレクションを返します。このサブクラスの iterator メソッドは、このマップの entrySet() 反復子の「ラッパーオブジェクト」を返します。size メソッドはこのマップの size メソッドに委譲し、contains メソッドは、このマップの containsValue メソッドに委譲します。

コレクションは、このメソッドが最初に呼び出されたときに作成され、それに続くすべての呼び出しに応じて返されます。同期は一切行われません。このため、わずかながら、このメソッドへの複数の呼び出しに対して、同じ Collection が返されない可能性があります。

定義:
インタフェース Map 内の values
戻り値:
マップ内に保持されている値のコレクションビュー

entrySet

public abstract Set entrySet()
マップ内に保持されているマッピングのセットビューを返します。このセットの各要素は Map.Entry です。セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。セットの繰り返し処理中にマップが変更された場合は、繰り返し処理の結果は定義されません。セットは要素の削除をサポートしており、対応するエントリをマップから削除できます。削除は、Iterator.removeSet.removeremoveAllretainAll、および clear の各オペレーションを通して行います。Set は、add オペレーションや addAll オペレーションはサポートしていません。

定義:
インタフェース Map 内の entrySet
戻り値:
マップ内に保持されているマッピングのセットビュー

equals

public boolean equals(Object o)
指定されたオブジェクトがこのマップと等しいかどうかを比較します。指定されたオブジェクトがマップであり、2 つのマップが同じマッピングを表す場合に true を返します。つまり、t1.keySet().equals(t2.keySet()) であり、t1.keySet() 内のすべてのキー k(t1.get(k)==null ? t2.get(k)==null :t1.get(k).equals(t2.get(k))) の場合に、2 つのマップ t1t2 は同じマッピングを表します。これにより、マップインタフェースの実装が異なる場合でも、equals メソッドが正しく動作することが保証されます。

この実装は、指定されたオブジェクトがこのマップ自身であるかどうかを最初に調べます。このマップである場合、実装は true を返し指定されたオブジェクトについて、このセットと同じサイズのマップであるかどうかを調べます。同じサイズのマップでない場合は false を返します。同じサイズのマップである場合は、このマップの entrySet コレクションの内容を次々調べて、指定されたマップに、このマップが格納している各マッピングが含まれているかどうかを調べます。指定されたマップにそのようなマッピングがない場合は、false が返されます。反復が完了した場合に true が返されます。

定義:
インタフェース Map 内の equals
オーバーライド:
クラス Object 内の equals
パラメータ:
o - マップと等しいかどうかを比較するオブジェクト
戻り値:
指定されたオブジェクトがマップと等しい場合は true
関連項目:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
マップのハッシュコード値を返します。マップのハッシュコードは、マップの entrySet() ビューにある各エントリのハッシュコードの合計です。これにより、Object.hashCode の一般規約で要求されるとおりに、任意の 2 つのマップ t1t2 について、t1.equals(t2) の場合 t1.hashCode()==t2.hashCode() になります。

この実装は、Collection の各要素 (エントリ) の hashCode を呼び出して、entrySet() の内容を次々調べ、結果を加算していきます。

定義:
インタフェース Map 内の hashCode
オーバーライド:
クラス Object 内の hashCode
戻り値:
マップのハッシュコード値
関連項目:
Map.Entry.hashCode(), Object.hashCode(), Object.equals(Object), Set.equals(Object)

toString

public String toString()
このマップの文字列表現を返します。文字列表現は、キーと値のマッピングをマップの entrySet ビューの反復子が返した順に中括弧 ("{}") で囲んで示すリストです。隣接するマッピングは、文字 ", " (コンマと空白文字) によって区切られます。各キーと値のマッピングは、キーのあとに等号 ("=") が続き、その次にキーと関連付けられる値が続くという形で描画されます。キーと値は、String.valueOf(Object) により文字列に変換されます。

この実装は、空の文字列バッファーを作成し、左中括弧を付加してから、マップの entrySet ビューを繰り返して調べて、各 map.entry の文字列表現を順に付加していきます。各要素の後ろには、文字列 ", " が付加されます。ただし、最後の要素の後ろには、", " ではなく右中括弧が付加されます。最後に、文字列バッファーから文字列を取得し、返します。

オーバーライド:
クラス Object 内の toString
戻り値:
このマップの文字列表現

clone

protected Object clone()
                throws CloneNotSupportedException
AbstractMap のインスタンスのシャローコピーを返します。キーと値は、それ自体は複製されません。

オーバーライド:
クラス Object 内の clone
戻り値:
このマップのシャローコピー
例外:
CloneNotSupportedException - オブジェクトのクラスが Cloneable インタフェースをサポートしていない場合。clone メソッドをオーバーライドしたサブクラスも、インスタンスを複製できないことを示すためにこの例外をスローすることがある
関連項目:
Cloneable

Foundation 1.1.2

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。