2D グリッドでパスを見つけるために何百ものポイントを比較する必要があり、パフォーマンスを本当に探しています。equals()
私は自分Point
のクラスでオーバーライドしました:
@Override
public boolean equals(Object o)
{
if (o instanceof Point)
{
Point that = (Point) o;
return that.i == this.i && that.j == this.j;
}
return false;
}
Point
myをオブジェクト ( で使用される)と比較できるため、これはかなり良いことですが、 s をそれらの間でArrayList.contains()
比較する必要があることがよくありPoint
ます。だから私はオーバーロードしましたequals()
:
public final boolean equals(Point other)
{
return (i == other.i) && (j == other.j);
}
問題は次のとおりです。2 番目の方法には利点がありますか? Point
2 つのインスタンスが直接比較され、instanceof とキャストが不要な場合は、2 つのインスタンスを比較する方が高速ですか。
boolean result = onePoint.equals(otherPoint);
プラットフォームについて: コードは android では android SDK(19) を使用してコンパイルされ、iOSではavianを使用して AOT コンパイルされます。
どうもありがとう。