解答例 - 実習課題1 - 4.Map
(実習課題1)
以下のコンソールプログラムを実装しなさい。
- 3章の実習課題2で作成した人間クラスをキーとし、その住所を値として「HashMap」に複数保存する事。
- 最後にキーと値の一覧を表示する事。「entrySet()」メソッドを使用すること。
解答例
package com.techscore.utility.chapter4.exercise1; /** * ComparableHuman.java * TECHSCORE Javaユーティリティ4章 実習課題1 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ public class ComparableHuman extends Human implements Comparable { public ComparableHuman(String name, int age) { super(name, age); } // 年齢を比較する。年齢が同じなら true を返す。 public boolean equals(Human h) { return (this.getAge() == h.getAge()); } // 年齢を比較する。年齢差を返す。 public int compareTo(Object obj) { return (this.getAge() - ((Human) obj).getAge()); } }
package com.techscore.utility.chapter4.exercise1; /** * HashMapExample.java * TECHSCORE Javaユーティリティ4章 実習課題1 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ import java.util.HashMap; import java.util.Set; import java.util.Map; import java.util.Iterator; public class HashMapExample { public static void main(String[] args) { // ハッシュマップを初期化する。 HashMap map = new HashMap(); // 追加する人のオブジェクトを作成する。 ComparableHuman taro = new ComparableHuman("太郎", 15); ComparableHuman hanako = new ComparableHuman("花子", 12); ComparableHuman jiro = new ComparableHuman("次郎", 13); // ハッシュマップにHumanオブジェクトを追加する。 map.put(taro, "京都市左京区"); map.put(hanako, "大阪市北区"); map.put(jiro, "神戸市中央区"); // ハッシュマップの一覧を表示する。 Set set = map.entrySet(); Iterator i = set.iterator(); while (i.hasNext()) { Map.Entry entry = (Map.Entry) i.next(); ComparableHuman h = (ComparableHuman) entry.getKey(); System.out.println( "(名前)" + h.getName() + " (年齢)" + h.getAge() + " (住所)" + entry.getValue()); } } }
package com.techscore.utility.chapter4.exercise1; /** * Human.java * TECHSCORE Javaユーティリティ4章 実習課題1 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ public class Human { private String name = null; private int age = 0; public Human(String name, int age) { this.name = name; this.age = age; } public String getName() { return (name); } public int getAge() { return (age); } }