このクラスは、compareTo(...) メソッドを定義していますが、equals メソッドは java.lang.Object から継承しています。 通常、equals メソッドが true を返す場合に限り、compareTo メソッドは0を返すべきです。 これが違反されるなら奇妙で予測できない失敗が PriorityQueue などのクラスで発生します。 J2SE 5.0では、PriorityQueue.remove()compareTo メソッドを使用しますが、Java SE 6では、equals メソッドを使用します。

Comparable インタフェースの compareTo メソッドの JavaDoc を以下に引用します。

必須というわけではありませんが、(x.compareTo(y)==0) == (x.equals(y)) であることが強く推奨されます。 通常、Comparable インタフェースを実装しているクラスで、この条件に違反するクラスは明確にこの事実を示す必要があります。 「注:このクラスは equals と一貫性のない自然順序付けを持ちます」などと明示することをお勧めします。