Java:调用类类型数组来测试是否相等

Java:调用类类型数组来测试是否相等,java,arrays,class,equals,Java,Arrays,Class,Equals,我正在开发一个程序,它首先获取一个偶数双精度数组,然后依次创建第二个(x,y)坐标数组。然后,必须通过比较数组中每个点的x坐标和y坐标,将调用的PointArray与参数PointArray进行比较。我从概念上知道,我必须对每个数组进行排序,并使用indes和defined equals方法比较每个点,但我不知道在调用类类型数组的点没有作为参数给出时如何引用它 private double x; private double y; public Point(double x_coord, do

我正在开发一个程序,它首先获取一个偶数双精度数组,然后依次创建第二个(x,y)坐标数组。然后,必须通过比较数组中每个点的x坐标和y坐标,将调用的PointArray与参数PointArray进行比较。我从概念上知道,我必须对每个数组进行排序,并使用indes和defined equals方法比较每个点,但我不知道在调用类类型数组的点没有作为参数给出时如何引用它

private double x;
private double y;

public Point(double x_coord, double y_coord)
{
    x = x_coord;
    y = y_coord;
}

public boolean equals(Point anotherPoint)
{
    if(x == anotherPoint.x && y == anotherPoint.y)
    {
        return true;
    }
    return false;
}
int count;
private Point[] points = new Point[count];

public PointArray(double[] doubleArray)
{
    count = (doubleArray.length) / 2;
    if(doubleArray.length % 2 == 0)
    {
        count = (doubleArray.length) / 2;
        for(int i = 0, j = 0; i < count; i++, j += 2)
        {
            double x = doubleArray[j];
            double y = doubleArray[j + 1];
            points[i] = new Point(x, y);
        }
    }
    else
    {
        System.out.println("Error: The given array must be even.");
    }
}
public boolean equals(PointArray anotherPointArray)
{
    double x = 0;
    double y = 0;
    double xAnother = 0;
    double yAnother = 0;
    Point newPoint = new Point(x, y);
    Point newAnotherPoint = new Point(xAnother, yAnother);
    anotherPointArray.sort();
    anotherPointArray.newPoint;
    for(int i = 0; i < points.length; i++)
    {
        for(int j = 0; i < anotherPointArray.length; j++)
        {
            if(newPoint.equals(newAnotherPoint))
            {
                return true;
            }
        }
    }
    return false;
}
private双x;
私人双y;
公共点(双x坐标、双y坐标)
{
x=x_坐标;
y=y_坐标;
}
公共布尔等于(另一点)
{
如果(x==anotherPoint.x&&y==anotherPoint.y)
{
返回true;
}
返回false;
}
整数计数;
专用点[]点=新点[计数];
公共点数组(双[]双数组)
{
计数=(doubleArray.length)/2;
if(doubleArray.length%2==0)
{
计数=(doubleArray.length)/2;
对于(int i=0,j=0;i

编辑:澄清一下,我的问题是我不知道如何使用PointArray对象设置Point equals方法。

当您调用对象上的方法时,例如:

something.myMethod(argObject);
myMethod
中,您可以将
某物(调用该方法的对象)称为
-对象。
我希望比文字更能说明这一点。

你是说你不知道如何到达
equals
函数中的
数组???@J.Baoby你问的是哪个equals?如果你的意思是相等(PointArray,另一个PointArray),那么是的,我在这方面遇到了麻烦。但我要问的是如何声明这两个数组。例如,我认为“testPointArray1.equals(testPointArray2)”是我调用该方法的方式,在这种情况下,另一个PointArray2就是testPointArray2。然而,在布尔值的上下文中,tesrPointArray1是什么?我尝试使用this对象按如下方式设置它。程序运行,但总是输出为false。公共布尔等于(PointArray另一个PointArray){double x=0;double y=0;for(int i=0;ithis.points
等于
otherPointArray.points
,即另一个PointArray的数组,则返回true”。两个数组将被定义为相等不是因为它们具有相同的内容,而是因为它们实际上是相同的(因此它们指向相同的)。这有点像文件:如果复制文件,则复制文件的内容(硬盘上的所有位)到其他地方。对于您的系统,这将导致两个不同的文件,即使它们具有相同的内容,即使它们具有相同的名称,因为它们将指向硬盘驱动器上的不同位置。但是,例如,如果您有一个文件条目(硬盘驱动器上的位)在一种方法中,您设法为同一个文件创建另一个条目(因此指向同一个内存位置,相同的位),然后系统会告诉您它指向同一位置的是同一个文件