首页 > 解决方案 > java中的数组是否相等方法

问题描述

我是新手,我需要编写一个方法来检查 2 个数组的值和顺序是否相等,如果它们打印为真,否则为假,这是我写的,结果始终为真,如果我尝试打印由于某种原因,函数在数组中接收它们都是 0。

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;
}

标签: javaarrays

解决方案


当您尝试重新分配参数 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;
}

推荐阅读