循环通过两个数组来检查是否相等

时间:2014-04-19 05:21:00

标签: java arrays equals

尝试检查两个数组是否相等,意味着位置相同的长度和相同的元素。

我已经尝试过Arrays.equals(1,2),但它仍然是虚假的,而它需要是真实的。

我试图创建一个嵌套的for循环来检查每个索引,但我仍然是假的。

我的代码:

public boolean equals(double[] s) //for loop checking each element
{
    if (s==null)
    {
        return false;
    }
    for (int i=0;i<data.length;i++)
    {
        for(int j=0;j<s.length;j++)
        {
            if (data[i]!=s[j])
            {
                return false;
            }
        }
    }
    return true;

}

4 个答案:

答案 0 :(得分:11)

不要重新发明轮子!

public boolean equals(double[] s) {
    return Arrays.equals(s, data);
}

Arrays.equals()比较数组长度和每个元素。

答案 1 :(得分:2)

如果您想查看它们是否具有相同的元素,但您不关心它们是否具有相同的顺序,请先对它们进行排序。

Arrays.sort(data);
Arrays.sort(s);
return Arrays.equals(data,s);

答案 2 :(得分:1)

您不需要嵌套循环来检查元素。实际上,从一个数组到另一个数组中检查所有元素的意义上来说,您的代码是错误的。

你可能想要

// Check to make sure arrays have same length
if (data.length != s.length) 
   return false;

for (int i=0;i<data.length;i++)
{
    if (data[i]!=s[i])
    {
       return false;
    }
}
return true;

答案 3 :(得分:0)

您可以使用如下:

if(arr1.length!=arr2.length) 
   return false;

for(int index=0;index<arr1.length;index++)
{
    if (arr1[index]!=arr2[index])
         return false;

}
return true;