学習 Java

【初心者向け】Javaのmapの使い方を解説!サンプルコードも紹介!

「Javaのmapの使い方がわからない。宣言方法の方法やメソッドについて知りたい。誰か教えてほしい」

本記事ではこのような悩みを解決します。

Javaのmapは配列やlistよりも少し複雑で、初心者にとってはわかりにくいものですよね。しかしmapを使えるようになるとソースコードを綺麗に書くことができて便利なので、ぜひ覚えておきたいところです。

そこで本記事ではmapの使い方を初心者でもわかるように解説します。mapの宣言方法やメソッドについて1から説明しますね。

本記事を読むことでmapの基礎的な部分が理解できるようになっています。Java初心者の方はぜひこの機会にmapをマスターしてくださいね。


本ブログを運営しているTech Teacherは、業界初のプログラミング家庭教師サービスを提供しています。

その特徴は完全マンツーマン・フルオーダーメイド指導・30分ごとの利用が可能であるところです。

完全マンツーマン

Tech Teacherのマンツーマン指導なら理解できない箇所は何度も分かるまで説明を受けることができます。

フルオーダーメイド指導

Tech Teacherではあらかじめ決められたカリキュラムはありません。そのためご自身の学習状況や学びたいことに合わせた指導が可能です。

一括支払いなし

一般的なプログラミングスクールの料金体制はカリキュラムに対して一括払いですが、Tech Teacherでは利用した分だけの支払いとなります。そのため、大きな費用負担がなく気軽に始めることができます。

Javaをマンツーマン指導で学べるプログラミング家庭教師について詳しく知りたい方ほこちら

Javaのmapとは

まずはmapとは何かを説明するところから始めましょう。
mapを使うと何ができるのか、という部分についても触れていきます。

最初にmapの概念について理解しておきましょう。

mapとは何か

mapとは、「キー」と「値」をペアにして複数のデータを格納できるものです。たとえば出席名簿のデータをmapに格納する場合、出席番号を「キー」、氏名を「値」として入れることができます。

このように2つの紐付けられたデータを格納できるのがmapの特徴です。

mapとよく似たものに配列があります。配列も複数のデータを格納できるものです。
しかし配列の場合は、キーを指定することはできず、ただ値を入れることしかできません。配列とキーは使い所が異なるので注意してくださいね。

このように「キー」と「値」をペアにして格納できるのがmapの特徴です。

Javaの配列についてはこちらの記事で詳しく解説しています!ぜひご覧ください。

【初心者向け】Javaの配列について一挙解説!配列の操作方法がわかる! 「Javaの配列がよくわからない。配列の宣言の仕方とか、操作方法とか、全部一括でまとまっているサイトが見つからない」 ...

mapを使ってできること

「キー」と「値」をペアにして格納することができると、どんなメリットがあるのでしょうか。結論から言うと、mapから「値」を探すときに「キー」を目印にして探せるというのが良いのです。

たとえば、出席名簿のデータを格納したmapがあるとします。ここから「太郎さん」を探す場合、「キー」となる出席番号を目印にして探すことができるのです。

mapとはいわば辞書のようなものです。辞書を引くときにはキーワードを探し、そのキーワードの意味を調べます。同じように、mapでは「キー」を探すことで「値」を取得できるのです。

このように、mapを使うと「キー」を目印にして「値」を探せるというメリットがあるのです。

mapの基本的な使い方:hashmapで初期化する方法

ここからはmapの基本的な使い方を解説していきます。

まずmapを使えるようにする方法を見ていきましょう。
mapのインスタンスを生成するには、HashMapクラスを使う必要があります。

インスタンスについて詳しく知りたいという方は、ぜひこちらの記事をご覧ください!

Javaのインスタンスって?クラスとの違いについても分かりやすく解説!Javaで必須となるのがインスタンスの概念です。Javaを学習しているとインスタンスと同時にクラスというのも出てきて分からなくなる人も多...

具体的には次のように記述します。

Map<キーの型名, 値の型名> オブジェクト名 = new HashMap<>();

宣言するときにキーと値のデータ型を指定する必要があることに注意してください。
たとえは、キーをInteger、値をStringにする場合は以下のように書きます。

import java.util.HashMap;
import java.util.Map;
 
public class Main {
  public static void main(String[] args) throws Exception {
        Map<Integer, String> map = new HashMap<>();
    }
}

このように記述すればHashMapクラスでmapをインスタンス化することができます。mapにデータを追加する方法、追加したデータを出力する方法は後々紹介していきますね。

mapで主に使用するメソッド

宣言方法がわかったところで、mapで主に使われるメソッドについて見ていきましょう。
ここでは次のメソッドについて解説します。

  • putメソッド
  • getメソッド
  • keySetメソッドとvaluesメソッド

これらのメソッドの使い方を覚えることで、mapにデータを追加したり取得したり、様々な操作することができるようになります。

以下ではサンプルコードも紹介していますので、ぜひ手を動かしながら学んでみてくださいね。

putメソッドの使い方

putメソッドを使うと、mapにデータを追加することができます。
次のサンプルコードを見てください。

import java.util.HashMap;
import java.util.Map;

public class Main {
           public static void main(String[] args) throws Exception {
                      Map<Integer, String> map = new HashMap<>();
 
                      map.put(1, “田中”);
                      map.put(3, “鈴木”);
                      map.put(5, “高橋”);
           }
}

このコードでは、mapを使って3つのデータを順番に格納しています。

putメソッドは第1引数に「キー」、第2引数に「値」を指定することでデータを追加できます。

getの使い方

getメソッドを使うとmapに格納したデータを取得することができます。

先ほどのコードにgetメソッドを使った行を追加しました。

import java.util.HashMap;
import java.util.Map;

public class Main {
           public static void main(String[] args) throws Exception {
                      Map<Integer, String> map = new HashMap<>();

                      map.put(1, “田中”);
                      map.put(3, “鈴木”);
                      map.put(5, “高橋”);

                      System.out.println(map.get(1));
                      System.out.println(map.get(3));
                      System.out.println(map.get(5));
           }
}

◯実行結果

Documents $ 1java test.java
田中
鈴木
高橋
Documents $ 1

このコードでは、getメソッドを使ってデータを出力しています。getメソッドは引数に「キー」を指定することで、そのキーの値を取得できます。

このようにキーを指定するだけで簡単にデータを取り出せるのがmapのメリットと言えますね。

keySetメソッド、valuesメソッドの使い方

続いてkeySetメソッドを使ってmapのすべてのキーを出力する方法を見ていきましょう。

mapのすべてのキーを出力する場合は、keySetメソッドを使用するのが便利です。keySetメソッドは次のようにfor文と組み合わせて使用することが多いです。

import java.util.HashMap;
import java.util.Map;

public class Main {
           public static void main(String[] args) throws Exception {
                      Map<Integer, String> map = new HashMap<>();
 
                      map.put(1, “田中”);
                      map.put(3, “鈴木”);
                      map.put(5, “高橋”);
 
                      System.out.println(map.get(1));
                      System.out.println(map.get(3));
                      System.out.println(map.get(5));
 
                      for(Integer key : map.keySet()) {
                                  System.out.println(key);
                      }
           }
}

◯実行結果

Documents $ 1java test.java
田中
鈴木
高橋
1
3
5
Documents $ 1

このコードでは、 map.keySetでmapのキーをすべて取得した後、for文を使って1つずつキーを出力させています。

このようにすべてのキーを取得するには、keySetメソッドが便利です。

キーではなく、mapの値をすべて取得する場合は、valuesメソッドを使います。

valuesメソッドもfor文と組み合わせて使用します。

import java.util.HashMap;
import java.util.Map;

public class Main {
           public static void main(String[] args) throws Exception {
                      Map<Integer, String> map = new HashMap<>();
 
                      map.put(1, “田中”);
                      map.put(3, “鈴木”);
                      map.put(5, “高橋”);
 
                      System.out.println(map.get(1));
                      System.out.println(map.get(3));
                      System.out.println(map.get(5));
 
                      for (String val : map.values()) {
                                  System.out.println(val);
                      }
           }
}

◯実行結果

Documents $ 1java test.java
田中
鈴木
髙橋
田中
鈴木
高橋
Documents $ 1

このコードでは、map.valuesでmapの値をすべて取得した後、for文を使って1つずつ値を出力させています。

このように、キーを取得する場合はkeySetメソッド、値を取得する場合はvaluesメソッドを使うのが良いです。

「Tech Teacherで!~家庭教師ならではの3つの魅力~」

本Blogを運営するプログラミング家庭教師Tech Teacherは以下のような疑問をすべて解決できるサービスです。

・Javaの応用をもっと学びたいが、値段が高いスクールに通うのは気が引ける

・目的別に短時間の利用ができるサービスがあったらいいな

比較対象 Tech Teacher プログラミングスクールA社
受講形態
1対1

1対3~5
担当教師
担任教師
×
講座別の講師
カリキュラム
自分専用指導

全員指導
仕事・学業との両立
可能
×
不可能
メンター制度
担任教師

異なる担当
料金
授業分だけ
×
一括払い
初期費用
入会金
22,000円
×
一括払い
528,000円
シミュレーション
(3ヶ月90分の指導を週1で行う)

164,500円
×
528,000円

以下、Tech Teacherの3つの魅力を紹介します。

Javaをマンツーマン指導で学べるプログラミング家庭教師について詳しく知りたい方ほこちら

1.効率的な学習スタイル

一人のためだけの指導~1対1の完全個別指導~

一般的なプログラミングスクールでは大人数の対面講義や、録画講義の視聴またはオンラインでの受講がメインです。そうなると学習しながら生じた疑問をすぐに聞くことができずに、先に進んでしまい内容をうまく理解できなかったり、作業がうまく進まなかったりします。

家庭教師であれば、マンツーマンのため自分の課題にだけ焦点を当てて指導を受けられるので、1回の授業を濃い時間にすることができます。

無駄のない学習~フルオーダーメイド~

Tech Teacherは一般的なプログラミングスクールと異なり、あらかじめ決められたコースやカリキュラム設定がありません。

一般的なプログラミングスクールのカリキュラムでは、自分が本当に学習したいことを学ぶのにいくつか他の講義を受けなければなりません
Tech Teacherでは生徒様の現状の習熟度・目的・期間に応じてお悩みにダイレクトに刺さる授業を展開し、最短で目標となるゴールを目指せます。

2.自分のペースで学習できる

必要な分だけ~従量課金モデル~

Tech Teacherでは、他にはない「短時間(30分ごと)」の利用が可能です!勉強していてちょっとわからないところ、プログラミング学習のモチベーション維持など様々な疑問や悩みを解決することができます。
授業を受けた分だけ後払いする料金体系(3,960円〜 / 30分)のため、必要な期間に必要な分だけ受講できます。

好きな時間で~相性のいい教師の紹介~

Tech Teacherではあらゆるニーズに対応できる教師陣がいるため、生徒様の希望条件に最適な教師を紹介します。

Tech Teacherを受講している方のほとんどが仕事をしている社会人の方です。TechTeacherの家庭教師なら受講日時や回数を、生徒様のご都合に合わせて柔軟に調整することができ、スキルだけでなく都合の良い時間で指導できる教師を選べます。

3.確実に身につく

挫折しない~担任教師の継続指導~

オンライン・オンデマンドの講義の視聴形態だと、学習に対するモチベーションの維持が課題となり、当初の予定よりも受講期間が伸びたり、挫折したりする恐れがあります。

Tech Teacherでは、担任教師が生徒と二人三脚で学習をするため、学習が大変なときも寄り添ったサポートを受けられます。

具体的には学習計画の管理や受講目的を明確にした上で中間目標を設定し、それに向けた学習の指導をすることでモチベーションの維持を図ります。

いつでも質問できる~チャットサポート(オプション)~

担当教師は授業の時間以外に、チャットサービスを利用して、自分で学習しているときに生じた疑問をすぐに質問して解決することができます。

Javaをマンツーマン指導で学べるプログラミング家庭教師について詳しく知りたい方ほこちら

Tech Teacherへのお問い合わせ

質問のみのお問い合わせも受け付けております。

まとめ

本記事ではJavaのmapの使い方を解説してきました。mapがどんなものかおわかり頂けたでしょうか?

mapを使いこなせるようになると、格納したデータを取り出して使うような処理を書くとき、便利な場合があります。
また、putメソッドやgetメソッドなどを使いこなせるようになると、より柔軟にmapを扱えるようになり、より高度なアプリが作れるようになるでしょう。
mapは実務でも使う頻度が高いので、ぜひとも習得したい文法の1つです。

本記事がJava初心者にとって有意義なものとなれば幸いです。

このBlogでは他にもJavaの学習に役立つ情報を発信しています!ぜひご覧ください。

【初心者向け】Javaのstaticメソッド・static変数について解説! 「Javaのstaticの意味がわからない。『静的』ってどういう意味? 誰かわかりやすく教えてほしい」 本記事はこのよ...