Java プラットフォーム 1.2

java.util
クラス AbstractMap

java.lang.Object
  |
  +--java.util.AbstractMap
直接の既知のサブクラス:
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 メソッド以外の各メソッドのドキュメントを参照してください。より効率的な実装ができるマップの場合は、これらのメソッドをオーバーライドしてもかまいません。

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

コンストラクタの概要
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 の場合

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 の場合

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
戻り値:
このマップに格納されているキーの Set ビュー

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
パラメータ:
o - このマップと等しいかどうか比較されるオブジェクト
戻り値:
指定されたオブジェクトがこのマップと等しい場合は true
オーバーライド:
クラス Object 内の equals

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 の文字列表現を順に付加していきます。各要素の後には、文字列 ", " が付加されます。ただし、最後の要素の後には、", " ではなく右中括弧が付加されます。最後に文字列バッファから文字列を取得して返します。

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

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.