このような順序で複数のプロパティを比較する場合、最初のものを単純に比較します。彼らが同じ場合は、2番目のものを比較します。そして、もし彼らが同じであれば、3番目のものを比較します。
あなたはこのようにそれを行う、あなたはjava.awt.Point
を使用していると仮定すると:あなたは、3円を並べ替える配列にそれらを入れて配列をソートする必要がある場合は
class Circle implements Comparable<Circle> {
private Point point;
private double radius;
// ... code ...
@Override
public int compareTo(Circle that) {
int cmp = Double.compare(this.radius, that.radius);
if (cmp == 0)
cmp = Double.compare(this.point.getX(), that.point.getX());
if (cmp == 0)
cmp = Double.compare(this.point.getY(), that.point.getY());
return cmp;
}
// ... code ...
}
:
Circle[] circles = { new Circle(...),
new Circle(...),
new Circle(...) };
Arrays.sort(circles);
あなたは」 2つのオブジェクトを比較しています。比較には、その3つのプロパティが含まれます。 – Savior
あなたが比較するにはあまりにも多くをやっていることは確かです。 2つのオブジェクトを比較するだけです。私があなたのことを正しく理解すれば、何か他のことをするのは間違いです。 – ChiefTwoPencils
'Circle'クラスに' Comparable 'を実装し、独自の' compareTo'メソッドを定義することができます。 –
Logan