解答例 - 実習課題3 - 3.Set
(実習課題3)
実習課題1で作成したコンソール・プログラムを改良しなさい。
- 「HashSet」ではなく「TreeSet」を使用すること。
- 実習課題2で作成したクラスを利用する事。
解答例
package com.techscore.utility.chapter3.exercise3; /** * ComparableHuman.java * TECHSCORE Javaユーティリティ3章 実習課題3 * * 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.chapter3.exercise3; /** * Human.java * TECHSCORE Javaユーティリティ3章 実習課題3 * * 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); } }
package com.techscore.utility.chapter3.exercise3; import java.util.Iterator; import java.util.TreeSet; /** * TreeMapExample.java * TECHSCORE Javaユーティリティ3章 実習課題3 * * Copyright (c) 2004 Four-Dimensional Data, Inc. */ public class TreeSetExample { public static void main(String[] args) { // ツリーセットを初期化する。 TreeSet set = new TreeSet(); // 追加する人のオブジェクトを作成する。 ComparableHuman taro = new ComparableHuman("太郎", 15); ComparableHuman hanako = new ComparableHuman("花子", 12); ComparableHuman jiro = new ComparableHuman("次郎", 13); // ツリーセットにHumanオブジェクトを追加する。 set.add(jiro); set.add(taro); set.add(hanako); // ツリーセットの一覧を表示する。 Iterator i = set.iterator(); while (i.hasNext()) { ComparableHuman h = (ComparableHuman) i.next(); System.out.println("(名前)" + h.getName() + " (年齢)" + h.getAge()); } //年齢順に表示されていることを確認する。 } }