HashMap

みるくあいらんどっ! > ドキュメント > Java > じっくり学ぶ Java講座 [初心者向け・入門]


HashMapとは

HashMapクラスは、Mapインターフェイスの実装のひとつです。

HashMapについて詳細が気になる方は、説明書(API)を参照してください。Java SE 7(Java 1.7)の説明書(API)を掲示しておきます→HashMapクラス

HashMapを使用したプログラム

さっそく HashMapクラスを利用してみます。ジェネリクスも使用します。

ソースコードは以下の通り。

V301/MySystem.java(ライブラリをそのまま利用します)

V301/V301.java

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

/**
 * HashMapを利用します。
 */
public class V301 {
	
	/**
	 * メインメソッド。
	 * @param args 引数
	 */
	public static void main(String[] args) {
		Map<String, String> weekdays = new HashMap<>();
		
		weekdays.put("Monday", "月曜日");
		weekdays.put("Tuesday", "火曜日");
		weekdays.put("Wednesday", "水曜日");
		weekdays.put("Thursday", "木曜日");
		weekdays.put("Friday", "金曜日");
		weekdays.put("Saturday", "土曜日");
		weekdays.put("Sunday", "日曜日");
		
		String input = MySystem.in.getString("曜日を英語で入力してください");
		
		if(weekdays.containsKey(input)) {
			String value = weekdays.get(input);
			System.out.println(input + "は" + value + "です。");
		} else {
			System.out.println("指定した曜日は見つかりませんでした。");
		}
	}
}

実行結果の例は以下の通り。

曜日を英語で入力してください? Wednesday
Wednesdayは水曜日です。

キー(Wednesday)に対応した(水曜日)が取得できています。また、ジェネリクスを使用しているため、明示的なキャストを記述しないでソースコードが構成されています。

HashMapと equalsメソッド

HashMapクラスにおいて、キーから値を検索する場合、内部でequalsメソッドが使用されています。本節のプログラムのように、既存のクラス(本節の場合は String)を使用する場合は、equalsメソッドが適切にオーバーライドされているため問題ありませんが、自作のクラスをキーに設定する場合には、equalsメソッドを適切に実装してください。

Hashtable

HashMapクラスが登場する前の古い Javaでは、Hashtableクラスが用いられていました。現在ではほとんど使用されていません。

最終更新: 2016/05/16 , 公開: 2013/03/13
▲top