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

