java MAP

3887 ワード

Map概要キーを値のオブジェクトにマップします.1つのマッピングに重複するキーを含めることはできません.各キーは最大1つの値にしかマッピングできません.このインタフェースはDictionaryクラスに取って代わり、後者は完全に抽象クラスであり、インタフェースではありません.Mapインタフェースには、3つのcollectionビューがあり、マッピングされたコンテンツをキーセット、値セット、またはキー値マッピング関係セットとして表示できます.マッピング順序は、反復器がマッピングしたcollectionビューで要素を返す順序として定義されます.いくつかのマッピングインプリメンテーションは、TreeMapクラスなどの順序を明確に保証することができる.他のマッピング実装では、HashMapクラスのような順序は保証されません.注意:マッピングキーとして可変オブジェクトを使用する場合は、特に注意してください.オブジェクトがマッピング内のキーである場合、equals比較に影響を与えるようにオブジェクトの値を変更すると、マッピングの動作は不確定になります.この禁止の1つの特殊な状況は、マッピングが自身をキーとして含むことを許可しないことです.マッピング自体を値として含めることはできますが、このようなマッピングではequalsメソッドとhashCodeメソッドの定義は明確ではありません.すべての一般的なマッピング実装クラスは、2つの「標準的」な構築方法を提供する必要があります.1つのvoid(パラメータなし)空のマッピングを作成するための構築方法です.1つは、パラメータと同じキー値マッピング関係を持つ新しいマッピングを作成するための単一のMapタイプのパラメータを持つ構築方法です.実際には、後者の構築方法では、必要なクラスの等価マッピングを生成するために任意のマッピングをコピーできます.この推奨は強制できませんが(インタフェースには構築方法が含まれていないため)ただし、JDKで共通のマッピング実装はすべてそれに従う.このインタフェースに含まれる「破壊」メソッドは、その操作のマッピングを変更することができ、このマッピングがサポートされていない場合、これらのメソッドはUnsupportedOperationExceptionから放出される.もしそうであれば、これらのメソッドは、マッピングに対する無効な呼び出し時に、(ただし必須ではない)U n s p p p p p p o r t e d OperationExceptionを放出します.たとえば、マッピング関係が「オーバーラップ」である変更不可能なマッピングが空の場合、そのマッピングに対してputAll(Map)メソッドを呼び出すと、できる(ただし、必要ではありません)例外を放出します.一部のマッピングインプリメンテーションでは、含まれる可能性のあるキーと値に制限があります.たとえば、nullキーと値が禁止されているインプリメンテーションや、そのキーのタイプに制限があります.不合格なキーまたは値を挿入しようとすると、通常はNull PointerExceptionまたはClassCastExceptionのいずれかの検査されていない例外が放出されます.不合格の有無を問い合おうとしますのキーまたは値が異常を投げ出すかfalseに戻る可能性があります.いくつかの実装は前の動作を示し、他の実装は後の動作を示す.一般に、不合格なキーまたは値に対して操作を実行しようとし、その操作が完了してもマッピングに不合格な要素が挿入されない場合、実装自体に応じて例外が投げ出されたり、操作が成功したりする可能性があります.このような例外は、このインタフェースの仕様に「オプション」とマークされます.このインタフェースはJava Collections Frameworkのメンバーです.Collections Frameworkインタフェースの多くの方法はequalsメソッドに基づいて定義されています.例えば、containsKey(Object key)メソッドの仕様では、「このマッピングが(key=null?k=null:key.equals(k))を満たすキーkに対するマッピング関係を含んでいる場合にのみ、trueを返す」と記載されている.この仕様は、空でないパラメータkeyを持つMapを呼び出すものと解釈すべきではない.containsKeyは、任意のキーkに対してキーyを呼び出す.equals(k).例えば、2つのキーのハッシュコード(Object.hashCode()仕様を最初に比較して、ハッシュコードが等しくない2つのオブジェクトが等しくないことを保証する)を回避するために、任意に最適化することができる.一般に、実装者が適切であると判断すれば、様々なCollections Frameworkインタフェースの実装は、下位Objectメソッドの指定された動作を任意に利用することができる.
一般的な操作の説明
void clear()
このマッピングからすべてのマッピング関係を除去します(オプション).
boolean containsKey(Object key)
このマッピングに指定したキーのマッピング関係が含まれている場合はtrueを返します.
boolean containsValue(Object value)
このマッピングが1つ以上のキーを指定した値にマッピングすると、trueが返されます.
boolean equals(Object o)
指定したオブジェクトがこのマッピングと等しいかどうかを比較します.
V get(Object key)
指定したキーにマッピングされた値を返します.このマッピングにキーのマッピング関係が含まれていない場合はnullを返します.
int hashCode()
このマッピングのハッシュ・コード値を返します.
boolean isEmpty()
このマッピングにキー値マッピング関係が含まれていない場合はtrueを返します.
Set keySet()
このマッピングに含まれるキーのSetビューを返します.
V put(K key, V value)
このマッピングで指定した値を指定したキーに関連付けます(オプション).
void putAll(Map m)
指定したマッピングからすべてのマッピング関係をこのマッピングにコピーします(オプション).
V remove(Object key)
キーのマッピング関係がある場合は、このマッピングから削除します(オプション).
int size()
このマッピングのキー値マッピングの関係数を返します.
Collection values()
このマッピングに含まれる値のCollectionビューを返します.
Mapの一般的な使い方1.Mapを宣言:
Map map = new HashMap();

2 .mapに値を入れます.mapはkey-valueの形式で保存されます.たとえば、次のようにします.
map.put("sa","dd");

3 .mapから値を取ります.
String str = map.get("sa").toString,

結果はstr=“dd’4.mapを遍歴し、そこからkeyとvalueを取得する.
Map m= new HashMap();
for(Object obj : map.keySet()){
Object value = map.get(obj );
}