はじめに
Javaでも連想配列を使用することができます。
そもそも連想配列とは何か?という疑問を解消するとともに、Javaで使用することになるHashMapの使い方をさっと10分ぐらいで理解できるようになっていただこうかと思います。
連想配列とは何ぞや?
そもそもの疑問ですが、連想配列とは何でしょうか。
Javaにおける配列はご存知だと思うのですが、配列名[インデックス番号]で取り出すことができます。
一方でデータベースのように配列に格納されたイメージをもとに値を格納したり、指定した要素を取り出すことはできません。
例えば「りんご」という値段が「100円」だったとして、言葉同士を目印にして自由に値を出し入れできないという不便さがあるのです。
それを解決するのがこれから説明する「連想配列」のお話。
先の例で挙げるなら「りんご」がkeyになり、紐づく「100円」がvalueとなります。
下のイメージ例にもあるように、言葉同士でkeyとvalueで繋がった配列を「連想配列」と呼びます。
配列で「りんご」を指定すると「100円」が取り出せるイメージです。
連想配列を使用するにはこれから説明するHashMapを使用することで実現が可能になります。
HashMap
HashMapを使用するためにはHashMapクラスのオブジェクトを生成する必要があります。
このような感じで。
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値のマッピングの数を戻り値として返します。 |
サンプルも以下の通り用意しましたので、「へー。こんな感じで使用するんだ」って参考にしていただければ幸いです。
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を業務や学習などにお役立てくださいね。
やっていきましょう。