繁体   English   中英

遍历两个数组以检查是否相等

[英]Looping through two arrays to check if equal

试图检查两个数组是否相等,这意味着长度相同且元素位置相同。

我已经尝试过Arrays.equals(1,2),但是它仍然会以false的形式出现,而它需要以true的形式出现。

我试图创建一个嵌套的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;

}

不要重新发明轮子!

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

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

如果要查看它们是否具有相同的元素,但又不在乎它们是否具有相同的顺序,请先对它们进行排序。

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

您不需要嵌套循环即可检查元素。 实际上,您的代码在某种意义上是错误的,因为它正在检查从一个数组到另一个数组的所有元素。

你可能想要

// 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;

您可以使用以下方法:

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

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

}
return true;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM