Mapキーを値にマッピングするオブジェクトです。マップには、同一のキーを複数登録することはできません。つの値にしかマッピングできません。クラスに代わるものです。つのコレクションビューにより、マップの内容を、キーのセット、値のコレクション、あるいはキーと値のマッピングのセットとして表示できるようになります。マップの「順序」は、マップのコレクションビューの反復子が要素を返すときの順序として定義されます。クラスなどの実装では順序は保証されません。注:可変オブジェクトをマップキーとして使用する場合は細心の注意が必要です。比較に影響を与える方法でオブジェクトの値が変更された場合、マップの動作は保証されません。この禁止事項の特殊な例として、マップがそれ自身をキーとして持つことができないことが挙げられます。マップがそれ自身を値として持つことは許可されますが、その場合は細心の注意が必要です。メソッドの動作は保証されません。つの標準的なコンストラクタを提供するようにしてください。前者は空のマップを作成し、後者は同じキーと値のマッピングを引数として持つ新しいマップを作成します。汎用マップの実装はすべてこれに従っています。汎用マップの実装はすべてこれに従っています。スローするように指定されています。スローすることがありますが、必須ではありません。メソッドを呼び出すと、例外をスローすることがありますが、必須ではありません。マップの実装には、格納できるキーと値に制限があるものもあります。キーの型に制限がある実装もあります。ようなチェックされない例外がスローされます。前の動作を禁止する実装もあれば、後の動作を禁止する実装もあります。多くの場合は、マップに不適格な要素を挿入しない不適格なキーまたは値を処理しようとすると、実装の裁量で、例外がスローされる場合や、処理が有効になる場合があります。このインタフェースに関するそうした例外は、「任意」の仕様としてマークされます。