/** * Comparableの実装について
*

Comparableは、インスタンスが自然順序を持っている事を示す。 * また、その比較メソッドcompareTo(Object)を実装しなければならない。

* @see java.lang.Comparable * * compareTo契約を破っている場合は、比較に依存するコレクションクラス、 * TreeSet,TreeMap,Collections,Arraysを正常に動作させる事が出来ない。 * */ package com.ej; /** * Comparableの確認をするための比較テストクラス。 * valueフィールドにより整数比較がされる。 * 注意:このクラスはequalsと一致しない自然な順序を持っている。 * @author s-okita * @version 1.0 * @see java.lang.Comparable */ public class Compare implements Comparable { private int value; private String name; public Compare(int value, String name) { if (name == null) { throw new NullPointerException(); } this.value = value; this.name = name; } /** * @return */ public String getName() { return name; } /** * @return */ public int getValue() { return value; } /** * @param string */ public void setName(String string) { name = string; } /** * @param i */ public void setValue(int i) { value = i; } /* * キャストできなければ、ClassCastExceptionが発生 * このオブジェクトと指定されたオブジェクトの順序を比較します。 * @param Object 指定されたオブジェクト * @return このオブジェクトが指定されたオブジェクトより小さい場合は負の整数、 * 等しい場合はゼロ、大きい場合は正の整数を返します。 * @see java.lang.Comparable#compareTo(java.lang.Object) */ public int compareTo(Object o) { return compareTo((Compare)o); } public int compareTo(Compare cmp) { int result = this.value - cmp.value; return (result != 0 ? result : 0); } }