我是一个新手,我需要编写一个方法来检查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/

10-10 17:59