MENU
👇しうが厳選・おすすめのブログ!
しう
【テニス好きブロガー】 
テニス、読書が好きです。IT企業で学んだこともブログに書いています。高校教諭(テニス部顧問)→IT企業。テニス歴12年。人生をより有意義なものにしたいと思い、ブログを書き始めました。Twitterもしています。
アーカイブ

JavaでのHashMapの使い方【しうの備忘録】

HashMap Java 使い方

「しう」がJavaを勉強していて学んだことを書いています。

アウトプットをすることで、より定着しやすいと聞いたからです。

 

「しう」の備忘録的なものだと思ってください。

そして、ブログで書いたことが他の人(特にJava初学者)の役に立てばいいなと思っています。

 

記事の信頼性:IT企業で働き始めた「しう」がプログラミングについて学習したことを記載しています。

目次

HashMap使い方【Java】

HashMap Java 使い方

JavaでのHashMapの使い方について見ていきましょう。

HashMapには様々なメソッドが用意されています。

 

ここでは

スクロールできます
HashMapの宣言
put【キーと値のペアの追加】
put【値の上書き】
putIfAbsent【指定したキーがない時だけ上書き】
get【指定したキーに対応する値を取得する】
getOrDefault【指定したキーがない時の値も決められる】
size【登録されているペアの数】
isEmpty【ペアが全くないかの確認】
containsKey・containsValue【キー・値が含まれてるかの確認】
clear・remove【ペアの削除】
keySet【一覧を取得する】
HashMapの宣言方法+メソッド一覧

について見ていきましょう!

HashMapの宣言【Java】

まずHashMapの宣言をおこないましょう。

HashMapでは型名と変数名が必要になります。

HashMap<キーの型名、値の型名> マップの変数名 = new HashMap<キーの型名、値の型名>();

 

キーの型がString、値の型がIntegerであれば次のようになります。

【例】
HashMap<String, Integer> map = new HashMap<String, Integer>();

 

また、現在では右辺の<>の中のデータ型は省略可能です。

【例】
HashMap<String, Integer> map = new HashMap< >();

 

そして、HashMap は Map インターフェースを実装したクラスになります。

そのため、左辺でHashMapを使っていますが、Mapにしてもいいということです。

 

【例】
Map<String, Integer> map = new HashMap< >();

いつもと書き方が違っても、混乱しないようにしましょう。

 

※この書き方だとHashMapに用意されて、Mapに用意されていないメソッドは使うことができません。

気を付けてくださいね。

put【キーと値のペアの追加】

ここまでで、HashMapの用意ができました。

しかし、HashMapの中は1つも要素がありません。

 

要素を追加するには、putメソッドを使います。

マップ変数名.put(キーの名前、値の名前);

 

上で宣言したmapを使うと、以下のようになります。

【例】
Map<String, Integer> map = new HashMap< >();

map.put(“数学”, 80);
System.out.println(map.get(“数学”); //80が表示される

 

この時に気を付けることは、宣言時の<キーの型、値の型>に当てはまらないものは要素に追加できません。

先ほど、<String, Integer>で宣言しているので、今回追加できるのはキーにはString型、値の型にはInteger型だけです。

put【値の上書き】

一度キーに入っているものは、追加することはできません。

既に登録されているキーと同じものを入力した場合は、値が上書きされます。

 

【例】
Map<String, Integer> map = new HashMap< >();

map.put(“数学”, 80);
map.put(“英語”, 65);
map.put(“数学”, 90);

System.out.println(map.get(“英語”); //65が表示される
System.out.println(map.get(“数学”); //90が表示される

 

つまり、putの場合は次の2パターンに分かれます。

指定したキーがマップに存在しない場合
→新しくキーと値のペアがマップに追加される

キーがマップに既に存在した場合
→ペアを追加せずに新しい値だけ変更する。

putIfAbsent【指定したキーがない時だけ上書き】

マップ変数名.putIfAbsent(キーの名前、値の名前);

putでは指定したキーがすでにある場合は上書きされます。

 

putIfAbsentでは、既にキーが入っている時は上書きがされないです。

【例】
Map<String, Integer> map = new HashMap< >();

map.putIfAbsent(“”数学, 80);
map.putIfAbsent(“英語”, 65);
map.putIfAbsent(“数学”, 90);

System.out.println(map.get(“英語”); //65が表示される
System.out.println(map.get(“数学”); //最初に登録した80が表示される

このように上書きをしたくない場合はputIfAbsentメソッドを利用しましょう。

get【指定したキーに対応する値を取得する】

putメソッド、putIfAbsentメソッドで要素の追加ができるようになりましたね。

 

その要素を取り出すときに使うメソッドがgetメソッドです。

マップ名.get(キーの名前);

 

ここでも先ほど宣言したmapを使ってみましょう。

【例】
Map<String, Integer> map = new HashMap< >();

map.put(“数学”, 80);
map.put(“英語”, 65);

System.out.println(map.get(“数学”); //80が表示される
System.out.println(map.get(“国語”); //nullが表示される

 

getメソッドの引数にキーの名前を指定しています。

 

“数学”はputメソッドで登録されているので、ペアの値の80が表示されます。

“国語”は登録されていないので、ペアの値はnullが表示されます。

getOrDefault【指定したキーがない時の値も決められる】

getメソッドで当てはまるキーがない場合には、nullが返ってきます。

 

null以外を表示したい場合は、getOrDefaultメソッドを利用しましょう。

マップ名.getOrDefault(キーの名前, 指定したキーがない場合に表示するもの)

 

使い方は以下のようになります。

【例】
Map<String, Integer> map = new HashMap< >();

map.put(“数学”, 80);
System.out.println(map.getOrDefault(“国語”, -10); //-10が表示される

 

このように、null以外を表示させることができます。

size【登録されているペアの数】

マップに登録されているキーと値のペアの数を取得するにはsizeメソッドを利用します。

 

マップ名.size()

 

使い方は以下の通りです。

【例】
Map<String, Integer> map = new HashMap< >();

System.out.println(map.size()); //0が表示される

map.put(“数学”, 80);
map.put(“英語”, 65);
map.put(“国語”, 70);
System.out.println(map.size(); //3が表示される

最初はmap.size()=0になります。

 

その後、putメソッドで登録しているペアが3つなので

2回目のmap.size()=3

になります。

 

このようにsizeメソッドを利用することで、登録されているペアの数を取得できます。

isEmpty【ペアが全くないかの確認】

マップが空か判定したいときはisEmptyメソッドを利用します。

 

マップ名.isEmpty()

 

使い方は以下の通りです。

【例】
Map<String, Integer> map = new HashMap< >();
System.out.println(map.isEmpty(); //trueが表示される

map.put(“数学”, 80);
System.out.println(map.isEmpty()); //falseが表示される

 

一度でもputメソッドで登録すると、isEmptyメソッドではfalseが返ってきます。

containsKey・containsValue【キー・値が含まれてるかの確認】

キーに指定したものが含まれているか調べるときは、containsKeyメソッドを使います。

値に指定したものが含まれているか調べるときは、containsValueメソッドを使います。

 

マップ名.containsKey()
マップ名.containsValue()

 

キーはputメソッドで登録した時の左側

値はputメソッドで登録した時の右側のものでしたね。

 

【例】
Map<String, Integer> map = new HashMap< >();

map.put(“数学”, 80);
map.put(“英語”, 65);
map.put(“国語”, 70);

System.out.println(map.containsKey(“数学”)); //trueが表示される
System.out.println(map.containsKey(“理科”)); //falseが表示される

System.out.println(map.containsKey(65)); //trueが表示される
System.out.println(map.containsValue(100)); //falseが表示される

 

このように、ペアがあるかどうかはisEmptyメソッド、

キーや値があるか調べるときはcontainsKeyメソッド、containsValueメソッドを利用しましょう。

remove・clear【ペアの削除】

登録したペアの削除をしたい時にはremoveメソッドやclearメソッドを利用します。

 

マップ名.remove(削除したいキーの名前)
マップ名.clear()

 

指定したペアだけ削除するときはremoveメソッドを

全てのペアを削除したいときにはclearメソッドを利用しましょう。

 

【例】
Map<String, Integer> map = new HashMap< >();

map.put(“数学”, 80);
map.put(“英語”, 65);
map.put(“国語”, 70);

map.remove(“数学”);
System.out.println(map.size()); //2が表示される

map.clear();
System.out.println(map.size()); //0が表示される

  

clearメソッドを利用するとすべて削除してしまうので、使うときには気を付けてくださいね。

keySet【一覧を取得する】

登録されたキーの一覧を確認したいときには、keySetメソッドを利用します。

 

マップ名.keySet()

 

実際に使う場合は次のようになります。

【例】
Map<String, Integer> map = new HashMap< >();

map.put(“数学”, 80);
map.put(“英語”, 65);
map.put(“国語”, 70);

System.out.println(map.keySet()); //[数学, 英語, 国語]と表示される。

 

この場合に、表示されるのはキーの一覧です。

値の一覧ではないので、気を付けるようにしましょう。

JavaでのHashMapとは何か

HashMap Java 使い方

そもそも、HashMapとは何なのでしょうか?

 

HashMapはコレクションフレームワークと呼ばれるものの一種です。

以前紹介したArrayListクラスのの兄弟みたいな位置づけでもあります。

☟ArrayListの記事はコチラから

あわせて読みたい
JavaでのArrayListの使い方【「しう」の備忘録】 「しう」がJavaを勉強していて学んだことを書いています。 アウトプットをすることで、より定着しやすいと聞いたからです。   「しう」の備忘録的なものだと思ってくだ...

 

また、HashMapの特徴として、キーの重複が許されません。

putメソッドで重複してる場合は、上書きされてしまいます。

 

ちなみに、HashMap クラスは java.util パッケージに含まれています。

利用する場合は java.util.HashMapをインポートしてください。

ここで差がつくポイント【JavaでのHashMap】

HashMap Java 使い方

HashMapはラッパークラスのみ

HashMapでは基本型の利用をすることができません。

基本型とはint、double、booleanなどが当てはまります。

 

つまり、HashMap <int>、 HashMap <double>、 HashMap <boolean>

などの使い方はできません。

 

この場合は

HashMap <Integer>、 HashMap <Double>、 HashMap <Boolean>

というように、ラッパークラスを用いてあげましょう。

keySetでの値の一覧表示

HashMapでキーの一覧表示は、このブログで紹介しました。

では、値の表示したい場合はどうすればいいのでしょうか?

 

forとkeySetメソッドを使って、次のようにすれば表示されます。

【例】
Map<String, Integer> map = new HashMap< >();

map.put(“数学”, 80);
map.put(“国語”, 60);

for(String key:map.keySet()){
 System.out.println(map.get(key)); //キーに対応する値が表示される
}

 

この例では”数学”のペアである80が最初に表示されます。

そして、次の”国語”のペアである60が2番目に表示されます。

 

この書き方は便利なので、覚えておきましょう。

まとめ

いかがでしたか?

 

今回は

  • HashMapの使い方
  • HashMapとは何か
  • ここで差がつくポイント

をご紹介しました。

 

参考になれば嬉しいです。

Javaの勉強、頑張ってくださいね!

 

☟あわせて読みたい 「しう」のオススメブログ

あわせて読みたい
【独学だけで厳しいと感じたら】無料のプログラミングスクール3選 「しう」はプログラミングの勉強を独学で始めました。 最初はなかなか難しく感じ、配列の利用方法を完ぺきに身につけることさえ、時間がかかりました。   大学のテニス...
プログラミング(Java・Kotlin)のお...
Java Silver オススメの勉強方法は?【SE11・完全版】 | プログラミング(Java・Kotlin)のお悩み解決ラボ... Java Silver SE11を2か月勉強して合格した経験から、Java Silverのオススメの勉強方法を解説しています!他のサイトでは紹介していない情報も書いています。Java Silver SE...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

【しう】
Java Engineer| 最近はKotlin| 「テニスとJava(プログラミング)のお悩み解決ラボ」運営者| プログラミング・開発現場の学びを主に発信|【経歴】受託系IT企業➪自社開発企業| ∮保有資格∮ : Java Silver,Oracle SQL Silver,基本情報,TOEIC 750,簿記3級

コメント

コメントする

CAPTCHA


目次