我是一个新手,我需要编写一个方法来检查2个数组的值和顺序是否相等,如果它们打印为true,否则为false
这就是我写的,如果我出于某些原因尝试打印函数在数组中接收到的值,则它们都为0,因此结果始终为true。
public static boolean areArraysEqual(int[] firstArr, int[] secArr) {
firstArr = new int[N];
secArr = new int[N];
System.out.println(firstArr.length);
if(firstArr.length != secArr.length){
return false;
}
if(firstArr == null || secArr == null){
return false;
}
for(int i = 0; i < firstArr.length; i++) {
if(firstArr[i] != secArr[i]) {
return false;
}
}
return true;
}
最佳答案
当您尝试重新分配参数firstArr和secArr时,原始数组内容将丢失。
不需要重新分配firstArr和secArr,因为在Java中,数组对象是按值传递的,因此可以按原样使用其内容。
下面的代码片段就足够了:
public static boolean areArraysEqual(int[] firstArr, int[] secArr) {
if(firstArr == null || secArr == null || firstArr.length != secArr.length){
return false;
}
for(int i = 0; i < firstArr.length; i++) {
if(firstArr[i] != secArr[i]) {
return false;
}
}
return true;
}
关于java - 是Java中的数组等于方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51208651/