java数组相等性比较
我已经检查并注意到关于这个主题还有其他一些线索,但是我没有找到任何直接针对这个特定问题的线索,也没有看到答案。 这是我的代码:
public static boolean equals(int[] array1, int[] array2)
{
boolean trueFalse = true;
while(array1.length == array2.length)
{
int i = 0;
int j = 0;
if(array1[i] == array2[j])
{
i++;
j++;
return trueFalse;
}
else
{
trueFalse = false;
break;
}
}
return trueFalse;
我有两个阵列:
int[] array = {2, 30, 22, 1, 5};
int[] array1 = {2, 30, 4, 1, 5};
虽然它们显然不相等,但程序返回真。 我知道内置函数数组。equals(),但是我想手动执行此操作,以便全面理解函数
# 1 楼答案
当
(array1[i] == array2[j])
时,不应该调用return
而且
while
将永远循环代码应该是这样的:
# 2 楼答案
试试这个:
# 3 楼答案
试试这样的。将您的控制变量(我已将其重命名为
equal
)设置为true,如果出现任何问题(数组大小不相同或元素不相等),则将其设置为false、break和return请注意,您只需要一个索引,因为数组必须具有相同的大小,并且要相等,数组必须具有相同顺序的相同元素
另外,这在某种程度上是一个意见问题,但是只有一个return语句有利于可读性和维护
# 4 楼答案
{a1}与此非常相似。它还对两个数组进行null检查,以避免抛出
NullPointerException
# 5 楼答案
您的问题是
while
循环对if()
语句只起一次相同的作用,要比较两个数组,您可以使用以下代码: