【Java】putAllを使ってマップ(Map)のマッピングをコピーする!

マップ(Map)のマッピングをコピーするにはMapクラスのputAllメソッドを使用します。

MapクラスのputAllメソッドは指定したマップから全てのマッピングを追加するメソッドとなります。
キーが存在しない場合は追加されますがキーが重複した場合に追加後の値を上書きするようになります。

今回はMapクラスのputAllメソッドを使って以下の場合でマップ(Map)のマッピングをコピーしていきます。

⚫︎ マッピングをコピーする場合
⚫︎ キーが重複している状態でマッピングをコピーする場合

putAllメソッドとは

MapクラスのputAllメソッドは指定したマップから全てのマッピングをコピーするメソッドとなります。
キーの一致する場合は追加後の値に上書きされ、マップにキーが存在しない場合はそのまま追加されます。

putAllメソッドの書き方

putAllメソッドの構文は下記となります。

パラメータ

⚫︎ 追加されるマップ:
追加される対象のマップを指定します
⚫︎ 追加するマップ:
対象のマップに追加したいマップを指定します

putAllメソッドを呼び出すことで()に指定した追加するマップの要素を追加されるマップ内に要素を追加することができます。

マッピングをコピーするサンプルコード

マップ(Map)のマッピングをコピーするサンプルコードを紹介します。

マップのマッピングをコピーする場合

putAllメソッドを使用して、マップのマッピングをコピーします。

出力結果

・コピー前
mapA:{1=テレビ, 2=冷蔵庫, 3=洗濯機, 4=電子レンジ, 5=炊飯器, 6=掃除機}
mapB:{7=扇風機, 8=空気清浄機, 9=乾燥機}

・コピー後
mapA:{1=テレビ, 2=冷蔵庫, 3=洗濯機, 4=電子レンジ, 5=炊飯器, 6=掃除機, 7=扇風機, 8=空気清浄機, 9=乾燥機}
mapB:{7=扇風機, 8=空気清浄機, 9=乾燥機}

map2の値がmap1にマージされて格納されています。

キーが重複している状態でマッピングをコピーする場合

出力結果

・コピー前
mapA:{1=テレビ, 2=冷蔵庫, 3=洗濯機, 4=電子レンジ, 5=炊飯器, 6=掃除機}
mapB:{1=扇風機, 2=空気清浄機, 3=乾燥機}

・コピー後
mapA:{1=扇風機, 2=空気清浄機, 3=乾燥機, 4=電子レンジ, 5=炊飯器, 6=掃除機}
mapB:{1=扇風機, 2=空気清浄機, 3=乾燥機}

マップに値が格納されましたが、キー1と2と3が重複しているため、重複したキー1の値は「テレビ」から「扇風機」へ、2の値は「冷蔵庫」から「空気清浄機」へ、3の値は「洗濯機」から「乾燥機」へ上書きされています。

今回のポイント

putAllでマップ(Map)のマッピングをコピー

マップのマッピングをコピーするにはMapクラスのputAllメソッドを使用する

⚫︎ MapクラスのputAllメソッドでマップ(Map)のマッピングをコピーする

⚫︎ putAllメソッドのパラメータに追加したいマップを指定し、メソッドを呼び出すマップにパラメータのマップの全要素が追加される

⚫︎ putAllメソッドで重複するキーを指定する場合は、パラメータのマップ内の要素へ上書きされる

関連記事

マップ(Map)に値を格納するputメソッドについてはこちらをご参考ください。

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し