如何比较两个数组是否相等(Java)

该文章已生成可运行项目,

在代码过程中, 可能有coder跟我一样遇到,需要比较两个数组是否相等?
下面展示常用的两种方法:

1.遍历数组
一般可能大家会使用for循环对两个数组进行遍历, 在遍历过程中, 比较两个两个数组的每一位是否相等, 如果出现不相等, 则返回false. 类似于以下代码:

public boolean isEqual(int[] array1, int [] array2){
        for(int i = 0; i < array1.length; i++){
            if(array1[i] != array2[i]){
                return false;
            }
        }
        return true;
    } 

2. 使用Arrays.equals()
其实在java中, 也可以使用Arrays.equals(数组1, 数组2), 这里数组1和数组2一般是相同类型的数组, 比如都是int 或者都是String, char. 比较数组的代码如下

public boolean isEqual(int[] array1, int [] array2){
        if(Arrays.equals(array1, array2)){
            return true;
        }
        return false;
    } 

其实, 如果阅读一下源码, 可以发现其实Arrays.equals() 与数组遍历的方式 可以说是一样的.
以下是Jdk1.8中关于Arrays.equals()源码部分

public static boolean equals(int[] a, int[] a2) {
        if (a==a2)    //如果两个数组的指向的地址一样, 则肯定相等
            return true;
        if (a==null || a2==null) //如果两个数组中有一个为null, 则返回false
            return false;

        int length = a.length;
        if (a2.length != length)  //如果两个数组的长度不相等, 则返回false
            return false;

        for (int i=0; i<length; i++)  //最后才是遍历数组, 比较数组中的每一位是否相等, 如果出现不相等, 则返回false
            if (a[i] != a2[i])
                return false;
        return true;
    }
本文章已经生成可运行项目
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值