【Javaプログラミング】HashMapって何?使い方は?-プロショvol.78

スポンサーリンク
Java攻略

今回はHashMapというものについて。

HashMapとはどのようなものか、どのようにして使うのかを見ていく。

 

スポンサーリンク

HashMapとは?

 

HashMapもアイテムをまとめて格納するという点においては配列に似たような性質を持っている。

配列は格納された順番にそのアイテムに番号が振られる。

配列は「0」から番号が振られる。

 

HashMapではアイテムを「キー/値」のペアで格納する。

格納するときには「文字列キー/整数値」や「文字列キー/文字列値」というペアで格納される。

例えば「Apple/45」といった感じ。

「Apple」が文字列キー。

「45」が整数値。

 

HashMapは格納された順番に番号が付けられるのではなくて自分で値を割り当てることになる。

 

HashMapの構文

 

HashMapの構文は以下。
HashMapを使用する際はHashMapクラスがJavaにもとから用意されているから、それを導入しないといけない(API)。

 

import java.util.HashMap;
HashMap<キーの変数の型,値の変数の型> オブジェクト名 = new HashMap<キーの変数の型,値の変数の型>();

変数の型には「int」や「String」が入る。

オブジェクト名にはHashMapのオブジェクト名を自由につけていい。

 

例えばMonthというHashMapを作るとする。
キーと値は両方「文字列」にしようと思うから「String」を入れる。

import java.util.HashMap;
HashMap <String,String>Month = new HashMap<String,String>();

こんな感じ。

 

HashMapにアイテムを加えるput()メソッド

 

アイテムを加えるにはputメソッドを使用する。

メソッドの構文は以下。

HashMapのオブジェクト名.put(キーの変数, 値の変数);
putメソッドを使用して作ってみたプログラムが以下。

import java.util.HashMap;

public class HashMapMonth {

public static void main(String[] args) {

HashMap<String,String>Month = new HashMap<String,String>();

Month.put(“January”, “1月”); //文字列の場合は「”」を忘れずに
Month.put(“Feburary”, “2月”);
Month.put(“March”, “3月”);
Month.put(“April”, “4月”);
Month.put(“May”, “5月”);
Month.put(“Jun”, “6月”);
Month.put(“July”, “7月”);
Month.put(“August”, “8月”);
Month.put(“September”, “9月”);
Month.put(“October”, “10月”);
Month.put(“November”, “11月”);
Month.put(“December”, “12月”);

System.out.println(Month);

}

}

実行すると以下のようになる。

{Feburary=2月, Jun=6月, October=10月, December=12月, May=5月, September=9月, March=3月, July=7月, January=1月, April=4月, August=8月, November=11月}

順番バラバラ。

データを加える際の注意点

 

データを加える際、同じキーを使用することは不可

既に加えられているキーをもつ新しい値を追加すると、上書きされてしまう。

「Apple/45」というものがすでにあり、新しく「Apple/78」をいれようとする。
⇒既に「Apple」というキーはあるから「Apple/45」が「Apple/78」に上書きされる。

古いものは新しいものに。

同じ値を持つのは構わない。

 

またHashMapに存在しない値を取得しようとすると、「null(データなし)」が表示されてしまう。

 

キーが持つ値を表示させるget()メソッド

 

HashMapではget()メソッドを使用することでキーが持つ値を表示させることができる。

get()を使用する際の構文は以下の通り。

HashMapのオブジェクト名.get(キーの変数)

 

get()はあくまでも読み取り専用だから、表示させるにはSystem.out.println()など画面表示のメソッドが必要。

System.out.println(Month.get(“Jun”));

実行すると以下の結果。

6月

Junというキーを参照して「6月」という値を取得した。

 

削除するメソッドremove()とclear()

 

アイテムを追加できると同時に削除することも可能。

ArrayListLinkedListでも使用したメソッドと一緒。

remove()の構文は以下。

HashMapのオブジェクト名.remove(キーの変数);

remove()は指定して削除することができる。

 

全部一度に消したい場合はclear()メソッドを使用する。

HashMapのオブジェクト名.clear();

()内には何も書く必要はない。

 

最後に

 

似たようなものがたくさん出てくるから混乱しそうになる毎日・・・。

サンプルコードはなんとか書けたけれど、どのようにして実践に生かせばいいのかというのが今後の自分の課題のような気もするなぁ。

 

このエントリーをはてなブックマークに追加

コメント

タイトルとURLをコピーしました