JavaTM 2 Platform
Std. Ed. v1.3

java.util
クラス AbstractMap

java.lang.Object
  |
  +--java.util.AbstractMap
すべての実装インタフェース:
Map
直系の既知のサブクラス:
HashMap, TreeMap, WeakHashMap

public abstract class AbstractMap
extends Object
implements Map

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

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

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

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

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

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

クラス java.util.Map から継承した内部クラス
Map.Entry
 
コンストラクタの概要
protected AbstractMap()
          唯一のコンストラクタです。
 
メソッドの概要
 void clear()
          マップからマッピングをすべて削除します (任意のオペレーション)。
 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 から継承したメソッド
clone, 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
例外:
ClassCastException - 指定のキーがマップに適さない型の場合
NullPointerException - キーが null のときに、マップが null キーを許可しない場合

get

public Object get(Object key)
このマップによる指定されたキーのマッピング先となる値を返します。このキーへのマッピングをマップが含まない場合は null を返します。戻り値が null の場合でも、キーへのマッピングがマップにないとは限りません。マップが明示的に、キーを null にマッピングしている可能性もあります。containsKey オペレーションを使うと、この 2 つの場合を区別できます。

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

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

put

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

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

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

remove

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

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

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

putAll

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

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

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

clear

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

この実装は、entrySet().clear() を呼び出します。

定義:
インタフェース Map 内の clear
例外:
UnsupportedOperationException - このマップが clear をサポートしていない場合

keySet

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

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

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

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

values

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

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

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

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

entrySet

public abstract Set entrySet()
このマップに格納されているマッピングのセットビューを返します。このセットの各要素は Map.Entry です。セットはこのマップを基にしているので、マップへの変更、およびセットへの変更は、互いに反映されます。セットでの繰り返し処理が進行中にマップが変更された場合、反復の結果は保証されません。セットは要素の削除をサポートしており、対応するエントリをマップから削除することができます。削除には、Iterator.removeSet.removeremoveAllretainAll、および clear オペレーションが使えます。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 つのマップ t1 および t2 は同じマッピングを表します。これにより、equals メソッドはマップインタフェースの異なる実装間で正しく動作することが保証されます。

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

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

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
戻り値:
このマップの文字列表現

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.