【3分で理解】JavaのMapで値を追加する方法(put)

Javaを使う上で、ListMapなどのコレクションを扱う処理は、必須と言えます。

しかし、MapはListに比べて値の追加方法が、少し異なります。この記事では、Mapに値を追加する方法について、以下の内容で解説していきます。

  • 【基礎】Mapとは
  • 【基礎】Mapに値を追加するには?
  • 【基礎】putメソッドの基本的な使い方
  • 【基礎】Listや配列に値を追加するには?
  • 【発展】Mapに値をまとめて追加するには?
  • 【発展】putAllメソッドの使い方
  • 【発展】Mapの値を取得するには?

ここでは、そんなMapに値を追加する方法について、詳しく解説していきます!

Mapとは

java.util.Mapインタフェースは、キーに対してキーに紐づく値を保持することができるコレクションの1つです。コレクションとは、後からサイズを変更できる動的配列と理解していただければ大丈夫です。

Mapインタフェースでは、主にjava.util.HashMapやjava.util.TreeMapを使用します。Mapは以下のようにオブジェクトを生成します。

以下はMapを生成する具体例となります。
格納する値にはIntegerやString、ListやMapなどを指定することができます。

Mapに値を追加する

ここでは、実際に「Mapに値を追加する方法」について見ていきましょう!

値を追加するputメソッドとは

Mapに値を追加するには、HashMapクラスで用意されているputメソッドを使用します。putメソッドは第一引数にキーを指定し、第二引数にキーに関連付けられる値を指定します。

Mapにすでにキーに対するマッピングがある場合は、古い値は指定された値に置き換えられます。

戻り値:
putメソッドは戻り値にキーに関連した値を返します。

キーのマッピングが無かった場合はnullを返します。

値を追加する基本的な方法

Mapで値を追加するためには、上述したようにキーを指定し、キーに紐付いた値を追加する必要があります。Mapにキーと値を指定して、値を追加する方法を、以下に記述します。

紹介したサンプルでは、HashMapクラスでMapインタフェースの変数mMapを宣言し、キーのデータ型、値のデータ型にそれぞれ、String型を設定しています。値の追加は、Mapの変数mMapにputメソッドを使用して、String型のキー名称と値を、それぞれ設定しています。

List・配列に値を追加する方法

ListもMapと同じく大きさが決まっていない動的配列になります。Mapがキーと紐づく値を追加するのに対して、Listは配列と同じく要素を順番に追加することができます。

また、挿入位置を指定して値を追加することも可能です。Listに値を追加する方法に関しては、以下の記事で詳しく解説しています!

配列はListやMapに比べて手続きが少なく、宣言時に指定した要素分の値を設定できるため、シンプルで扱いやすいと言えます。

しかし、配列はMapやListのような動的配列ではなく固定長のため、基本的に値を追加する方法はありません。その代わり、追加したい分を別の大きな配列を用意して、値をコピーして使うという方法があります。

配列に値を追加する方法について知りたい方は、以下の記事を参照してください!

値をまとめて追加する方法

Mapインタフェースで使用するHashMapクラスには、putAllというメソッドが用意されています。putAllメソッドは、指定したMapの全ての値を追加することが可能です。

putAllメソッドを指定してMapの値を追加する方法を、以下に記述します。

紹介したサンプルでは、Mapインタフェースの変数mMap1、mMap2を宣言し、mMap1にputメソッドを使用して値を追加しています。

次に、mMap2に対してputAllメソッドを使用して、mMap1を指定しています。以下のようにputAllメソッドを使用することで、mMap1の値が全てmMap2に追加されます。

Mapの種類によって方法が変わる?

Mapには「HashMap」「TreeMap」「LinkedHashMap」などの種類があります。

基本的に目的は同じで、キーを指定して値を追加することに変わりませんが、値を追加した後の動作が変わることがあります。例えばキー名称を”key3”、”key2”、”key1”の順にMapに追加したときに、それぞれのMapがどのように値を保持しているか、以下に説明します。

HashMap
HashMapは、値はバラバラで追加されます。そのため、”key3”、”key2”、”key1”の順に追加したとしても、順不同で保持されます。

TreeMap
TreeMapは、値を追加後にキーを昇順でソートします。そのため、Map内部では”key1”、”key2”、”key3”の順に保持されます。

LinkedHashMap
LinkedHashMapは、値が追加された順番を保持します。Map内部では”key3”、”key2”、”key1”の順に保持されます。

値を取得する方法

値を追加したら、今度は取得する方法について知っておきましょう。

Mapで値を取得するにはgetメソッドを使用します。getメソッドは引数に取得する値に関連するキーを指定します。

以下にgetメソッドを使用して、値を取得する方法を記述します。

このようにgetメソッドでMapのキーを指定すれば、Mapの値を簡単に取得できます。JavaのMapで値を取得する方法については、以下の記事でも詳しく解説しています!

Mapについてもっと詳しく知りたい方へ

配列と比べてMapなどのコレクションの処理はとっつきにくいイメージがありますよね……。

しかし、以下のMapの処理をまとめた記事を読めば、きっとMapをより深く理解できるようになるでしょう。JavaのMapは使いこなせるようになれば、さまざまな複雑な処理が簡単にできるようになります!

Javaプログラマーとして一歩先へステップアップしたいなら、ぜひ以下の記事も参考にしてくださいね!

まとめ

Mapの値をputメソッドを使用して追加する方法や、値をまとめて追加する方法、Mapの種類について説明しました。

実際にMapなどのコレクションはよく使用されますので、使い方はしっかりと覚えておきましょう。もし、Mapから値を追加する方法を忘れてしまったら、この記事を思い出してくださいね!

Javaカリキュラム無料公開中!

この記事はJava入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Java学習に必要な情報を一つにまとめていますので効率よくJavaを学ぶことが出来ます。この機会に是非活用していただければと思います。

Java入門からアプリ開発まで未経験者が知っておくべき基礎を総ざらい
更新日 : 2019年5月22日

最短でJavaを習得したい方へ

もし、あなたが、

「難しすぎて学習が全然進まない」
「学習量が膨大でゴールが見えない」
「エラーを解決するのに何日もかかってしまう」

など、プログラミング学習やキャリアに関してお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_bannar-java1
LINEで送る
Pocket

書いた人

中沢 丈

中沢 丈

フリーランスエンジニア。
システム開発からコンテンツ作成まで幅広く対応します。

連絡先はこちらです。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説