尝试检查两个数组是否相等,意味着位置相同的长度和相同的元素。
我已经尝试过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;
}
答案 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;