K
- このマップで保持されるキーの型V
- マップされる値の型public abstract class AbstractMap<K,V> extends Object implements Map<K,V>
変更不可能なマップを実装するには、このクラスを拡張して、マップのマッピングのセット・ビューを返すentrySetメソッドを実装する必要があります。通常、返されたセットはAbstractSetの上に実装されます。このセットではaddメソッドとremoveメソッドをサポートすべきではありません。また、セットのイテレータではremoveメソッドをサポートすべきではありません。
変更可能なマップを実装するには、上記に加えて、このクラスのputメソッドをオーバーライドします(オーバーライドしなかった場合は、UnsupportedOperationExceptionがスローされます)。また、上記に加えて、entrySet().iterator()で返されるイテレータにremoveメソッドを実装する必要があります。
Mapインタフェースの仕様で推奨されているように、通常は、引数なしのvoidコンストラクタ、および引数にマップをとるコンストラクタを提供してください。
実装の詳細については、このクラスの抽象メソッド以外の各メソッドのドキュメントを参照してください。より効率的な実装ができるマップの場合は、これらのメソッドをオーバーライドしてもかまいません。
このクラスは、Java Collections Frameworkのメンバーです。
Map
, Collection
修飾子と型 | クラスと説明 |
---|---|
static class |
AbstractMap.SimpleEntry<K,V>
キーと値を維持するエントリ。
|
static class |
AbstractMap.SimpleImmutableEntry<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)
指定されたキーがマップされている値を返します。このマップにそのキーのマッピングが含まれていない場合は
null を返します。 |
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 ビューを返します。 |
compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
public int size()
public boolean isEmpty()
public boolean containsValue(Object value)
containsValue
、インタフェース: Map<K,V>
value
- このマップにあるかどうかが判定される値ClassCastException
- 値がマップに適さない型の場合(オプション)NullPointerException
- 指定された値がnullであり、このマップがnull値を許可しない場合(オプション)public boolean containsKey(Object key)
containsKey
、インタフェース: Map<K,V>
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つの場合を区別できます。
get
、インタフェース: Map<K,V>
key
- 関連付けられた値が返されるキーnull
ClassCastException
- このキーがこのマップに適さない型の場合(オプション)NullPointerException
- 指定されたキーがnullであり、このマップがnullキーを許可しない場合(オプション)public V put(K key, V value)
m.containsKey(k)
がtrueを返す場合にかぎり、マップmはキーkのマッピングを含むと言えます。put
、インタフェース: Map<K,V>
key
- 指定された値が関連付けられるキーvalue
- 指定されたキーに関連付けられる値UnsupportedOperationException
- putオペレーションがこのマップでサポートされない場合ClassCastException
- 指定されたキーまたは値のクラスが原因で、このマップにそれらを格納できない場合NullPointerException
- 指定されたキーまたは値がnullであり、このマップがnullのキーまたは値を許可しない場合IllegalArgumentException
- 指定されたキーまたは値のあるプロパティが原因で、このマップにそれらを格納できない場合public V remove(Object key)
(key==null ? k==null : key.equals(k))
となるキーkから値vへのマッピングがこのマップに含まれる場合、このマッピングは削除されます。(マップはこのようなマッピングを1つだけ含めることができます。)
このマップが以前にこのキーを関連付けていた値を返します。キーに対するマッピングがマップになかった場合はnullを返します。
このマップがnull値を許可する場合、戻り値のnullは、マップがキーのマッピングを保持していなかったことを示すとはかぎりません。つまり、マップが明示的にキーをnullにマップしていた可能性もあります。
一度呼出しが返れば、マップは指定されたキーのマッピングを含みません。
remove
、インタフェース: Map<K,V>
entrySetイテレータがremoveメソッドをサポートしないで、このマップが指定されたキーのマッピングを保持する場合は、この実装はUnsupportedOperationExceptionをスローします。
key
- マッピングがマップから削除されるキーUnsupportedOperationException
- removeオペレーションがこのマップでサポートされない場合ClassCastException
- このキーがこのマップに適さない型の場合(オプション)NullPointerException
- 指定されたキーがnullであり、このマップがnullキーを許可しない場合(オプション)public void putAll(Map<? extends K,? extends V> m)
put(k, v)
を1回呼び出した場合と同じです。オペレーションの進行中に、指定されたマップが変更された場合の、このオペレーションの動作は定義されていません。putAll
、インタフェース: Map<K,V>
このマップがputオペレーションをサポートせず、指定マップが空でない場合、この実装はUnsupportedOperationExceptionをスローします。
m
- このマップに格納されるマッピングUnsupportedOperationException
- putAllオペレーションがこのマップでサポートされない場合ClassCastException
- 指定されたマップ内のキーまたは値のクラスが原因で、このマップにそれらを格納できない場合NullPointerException
- 指定されたマップがnullである場合、またはこのマップがnullのキーまたは値を許可せず、指定されたマップにnullのキーまたは値が含まれている場合IllegalArgumentException
- 指定されたマップ内のキーまたは値のあるプロパティが原因で、このマップにそれらを格納できない場合public void clear()
clear
、インタフェース: Map<K,V>
entrySetがclearオペレーションをサポートしない場合、この実装はUnsupportedOperationExceptionをスローします。
UnsupportedOperationException
- clearオペレーションがこのマップでサポートされない場合public Set<K> keySet()
Set
ビューを返します。セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。セットの反復処理中にマップが変更された場合、反復処理の結果は定義されていません(イテレータ自身のremoveオペレーションを除く)。セットは要素の削除をサポートします。Iterator.remove、Set.remove、removeAll、retainAll、およびclearオペレーションで対応するマッピングをマップから削除します。addまたはaddAllオペレーションはサポートしていません。keySet
、インタフェース: Map<K,V>
AbstractSet
をサブクラス化するセットを返します。このサブクラスのiteratorメソッドは、このマップのentrySet()イテレータの「ラッパー・オブジェクト」を返します。sizeメソッドはこのマップのsizeメソッドに委譲し、containsメソッドは、このマップのcontainsKeyメソッドに委譲します。
Setは、このメソッドが最初に呼び出されたときに作成され、それに続くすべての呼出しに応じて返されます。同期は一切行われません。このため、わずかながら、このメソッドへの複数の呼出しに対して、同じSetが返されない可能性があります。
public Collection<V> values()
Collection
ビューを返します。コレクションはマップと連動しているので、マップに対する変更はコレクションに反映され、またコレクションに対する変更はマップに反映されます。コレクションの反復処理中にマップが変更された場合、反復処理の結果は定義されていません(イテレータ自身のremoveオペレーションを除く)。コレクションは要素の削除をサポートします。Iterator.remove、Collection.remove、removeAll、retainAll、およびclearオペレーションで対応するマッピングをマップから削除します。addまたはaddAllオペレーションはサポートしていません。values
、インタフェース: Map<K,V>
AbstractCollection
をサブクラス化するコレクションを返します。このサブクラスのiteratorメソッドは、このマップのentrySet()イテレータの「ラッパー・オブジェクト」を返します。sizeメソッドはこのマップのsizeメソッドに委譲し、containsメソッドは、このマップのcontainsValueメソッドに委譲します。
コレクションは、このメソッドが最初に呼び出されたときに作成され、それに続くすべての呼出しに応じて返されます。同期は一切行われません。このため、わずかながら、このメソッドへの複数の呼出しに対して、同じコレクションが返されない可能性があります。
public abstract Set<Map.Entry<K,V>> entrySet()
Map
Set
ビューを返します。セットはマップと連動しているので、マップに対する変更はセットに反映され、また、セットに対する変更はマップに反映されます。セットの反復処理中にマップが変更された場合、反復処理の結果は定義されていません(イテレータ自身のremoveオペレーション、またはイテレータにより返されるマップ・エントリに対するsetValueオペレーションを除く)。セットは要素の削除をサポートします。Iterator.remove、Set.remove、removeAll、retainAll、およびclearオペレーションで対応するマッピングをマップから削除します。addまたはaddAllオペレーションはサポートしていません。public boolean equals(Object o)
equals
、インタフェース: Map<K,V>
equals
、クラス: Object
o
- このマップと等しいかどうかが比較されるオブジェクトObject.hashCode()
, HashMap
public int hashCode()
Object.hashCode()
の一般規約によって要求されるように、任意の2つのマップm1とm2でm1.equals(m2)であれば、m1.hashCode()==m2.hashCode()となることが保証されます。hashCode
、インタフェース: Map<K,V>
hashCode
、クラス: Object
hashCode()
を呼び出して、entrySet()の内容を次々調べ、結果を加算していきます。Map.Entry.hashCode()
, Object.equals(Object)
, Set.equals(Object)
public String toString()
String.valueOf(Object)
により文字列に変換されます。protected Object clone() throws CloneNotSupportedException
clone
、クラス: Object
CloneNotSupportedException
- オブジェクトのクラスがCloneable
インタフェースをサポートしていない場合。clone
メソッドをオーバーライドしたサブクラスも、インスタンスを複製できないことを示すためにこの例外をスローすることがある。Cloneable
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.