我需要比较数百个点才能在 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;
}
这很好,因为可以将 myPoint
与对象(在 中使用ArrayList.contains()
)进行比较,但我经常需要Point
在它们之间进行比较。所以我重载了equals()
:
public final boolean equals(Point other)
{
return (i == other.i) && (j == other.j);
}
问题是:第二种方法有什么好处吗?在直接比较两个实例的情况下比较两个实例是否更快Point
,并且不需要 instanceof 和 cast:
boolean result = onePoint.equals(otherPoint);
关于平台:代码在android上使用android SDK(19)编译,在iOS上使用avian进行AOT编译。
非常感谢。