
こんにちは。飯塚です。
今回はJava初心者の方向けにHashMapを使った練習問題を作りました。記事を読む・動画を見る、だけでは、プログラムはなかなか書けるようになりません。手を動かすのが一番近道なので、問題形式にしました。
最初は全く分からなかっとしても、3~5回ぐらい解き直すと、驚くほど使いこなせるようになれるので、安心してください。
練習問題 HashMapを使って電話帳を作ってみる
練習問題
電話帳の登録内容
名前 | 電話番号 |
---|---|
田中 | 080-1234-5678 |
鈴木 | 090-0000-0000 |
ジョンソン | 001-010-1-888-888-8888 |
プログラムを実行したときにコンソールに出力される内容の例
1 2 3 |
電話番号を知りたい方の名前を入力してください。 > 田中 電話番号は 080-1234-5678 です。 |
1 2 3 |
電話番号を知りたい方の名前を入力してください。 > 鈴木 電話番号は 090-0000-0000 です。 |
1 2 3 |
電話番号を知りたい方の名前を入力してください。 > マイケル 電話帳に名前が登録されていません。別の方の名前を入力してください。 |
想定時間
30分を目安に書けるとよいでしょう。それ以上かかる場合はページ下部の回答を見ることをお勧めします。
自分で考える時間も大事ですが、プログラミング勉強し始めたばかりなら、基本的な文法はどんどん書いて覚えるほうが効率が良いですし、気持ち的にも楽です。
ヒント1 処理の流れの詳細とプログラムに起こすための考え方
何から手をつければいいのか、迷っている方もいるかもしれません。そういうときは、やりたいことを細かく分けて、1つずつプログラムに起こしていくのがコツです。
処理の流れのイメージ
1.プログラムを実行する。
2.コンソールに「電話番号を知りたい方の名前を入力してください。」と表示する。
3.ユーザーが適当な名前をコンソールに入力する。
4.名前が電話帳に登録されていたら、コンソールに電話番号を出力する。名前が電話長に登録されていなければ、コンソールに「電話帳に名前が登録されていません。別の方の名前を入力してください。」と出力する。
まずは「2.コンソールに「電話番号を知りたい方の名前を入力してください。」と表示する。」処理までを作ってみましょう。
ヒント2 入力を受け取るSystem.inとScannerの使い方
「3.ユーザーが適当な名前をコンソールに入力する。」はjava.util.ScannerとSystem.inを使うことでを実装することができます。
Scannerを使ったサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import java.util.Scanner; public class SampleScanner { public static void main(String[] args) { // Scannerのインタンスを生成する Scanner scanner = new Scanner(System.in); // ユーザーに入力を促す System.out.println("何か入力してください。"); System.out.print("> "); // 入力された内容を受け取る String input = scanner.nextLine(); // 入力された内容をコンソールに出力する System.out.println("入力された内容:" + input); // Scannerをクローズ scanner.close(); } } |
サンプルプログラムのコンソールへの出力結果
1 2 3 |
何か入力してください。 > 田中 入力された内容:田中 |
ヒント3 HashMapの使い方のサンプル
電話帳を作るのにHashMapを使います。HashMapの一番基本的な操作は「値を詰める」「値を取り出す」の2つです。下記にサンプルを記載しました。
HashMapを使ったサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import java.util.HashMap; public class SampleHashMap { public static void main(String[] args) { // HashMapのインタンスを生成する HashMap<String, String> map = new HashMap<String, String>(); // HashMapに値を詰める map.put("田中", "080-1234-5678"); // HashMapから値を取得する String tel = map.get("田中"); // 取得した値をコンソールに出力する System.out.println(tel); } } |
サンプルプログラムのコンソールへの出力結果
1 |
080-1234-5678 |
まとめ
いかがでしょうか。
解説と回答コードは、また別のときにご紹介します! お楽しみに。
《関連記事》
- 未経験者必見!! ITエンジニアがまず取得したい資格試験まとめ
- Javaのjava.util.Mapをかっこよく使いこなしたい!
- 現状に危機感を感じているエンジニアを7名募集します
- 【段階別】未経験必見! 業務で求められるJavaの具体的なスキルと勉強法

