[英]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.