LoginSignup
13
14

More than 3 years have passed since last update.

【Java】10分でわかる!連想配列とHashMap

Posted at

はじめに

Javaでも連想配列を使用することができます。
そもそも連想配列とは何か?という疑問を解消するとともに、Javaで使用することになるHashMapの使い方をさっと10分ぐらいで理解できるようになっていただこうかと思います。

連想配列とは何ぞや?

そもそもの疑問ですが、連想配列とは何でしょうか。
Javaにおける配列はご存知だと思うのですが、配列名[インデックス番号]で取り出すことができます。
一方でデータベースのように配列に格納されたイメージをもとに値を格納したり、指定した要素を取り出すことはできません。
例えば「りんご」という値段が「100円」だったとして、言葉同士を目印にして自由に値を出し入れできないという不便さがあるのです。

それを解決するのがこれから説明する「連想配列」のお話。
先の例で挙げるなら「りんご」がkeyになり、紐づく「100円」がvalueとなります。
下のイメージ例にもあるように、言葉同士でkeyとvalueで繋がった配列を「連想配列」と呼びます。
配列で「りんご」を指定すると「100円」が取り出せるイメージです。

連想配列.png

連想配列を使用するにはこれから説明するHashMapを使用することで実現が可能になります。

HashMap

HashMapを使用するためにはHashMapクラスのオブジェクトを生成する必要があります。
このような感じで。

HashMapTest.java
HashMap hmap<String,Integer> = new HashMap<String,Integer>();

HashMapクラスのオブジェクトを生成するとマップ上にkeyとvalueをマッピングしたり、削除したりといったメソッドが使用できるようになります。
主要なメソッドを以下に一覧化しておきます。

メソッド名 引数 説明
put 第一引数:K key,第二引数:V value keyと、keyに関連づけられるvalueをマップにマッピングします。
get 第一引数:Object key keyを第一引数に渡すことで戻り値としてkeyに関連づけられるvalueを戻り値として返します。
remove 第一引数:Object key 指定されたキーのマッピングがあればマップから削除します。
replace 第一引数:K key,第二引数:V value 指定されたkeyが存在し何らかの値がセットされている場合のみ、valueを第二引数で置換します。
containsKey 第一引数:Object key 指定のkeyのマッピングがマップに含まれている場合、戻り値にtrueを返します。
containsValue 第一引数:Object value 指定のvalueのマッピングがマップに含まれている場合、戻り値にtrueを返します。
clear 引数なし 全てのマッピングをマップから削除します。
isEmpty 引数なし マップがキーと値のマッピングを保持しない場合にtrueを返します。
size 引数なし マップ内のkey値のマッピングの数を戻り値として返します。

サンプルも以下の通り用意しましたので、「へー。こんな感じで使用するんだ」って参考にしていただければ幸いです。

HashMapTest.java

import java.util.HashMap;

public class HashMapTest {

    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ

        HashMap<String, Integer> hmap = new HashMap<String, Integer>();

        //      追加
        hmap.put("りんご", 100);
        hmap.put("バナナ", 200);
        hmap.put("ぶどう", 300);

        //      取得
        System.out.println(hmap.get("りんご"));

        //      指定したkeyが含まれているか(含まれるのでtrueが返る)
        System.out.println("containskey:" + hmap.containsKey("バナナ"));

        //      指定したvalueが含まれているか(含まれないのでfalseが返る)
        System.out.println("containsValue:" + hmap.containsValue(400));

        //      削除
        hmap.remove("ぶどう");

        //      マッピングの数を取得
        System.out.println("size:" + hmap.size());

        //      全削除
        hmap.clear();
        System.out.println(hmap.isEmpty());

    }

}


いかがでしたでしょうか。
HashMapを業務や学習などにお役立てくださいね。
やっていきましょう。

13
14
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
14