java Arrays.equals()方法简介

简介

java Arrays中定义了如下几种equals方法,用来对比判断数组是否相等

  • equals(boolean[], boolean[])
  • equals(byte[], boolean[])
  • equals(char[], boolean[])
  • equals(double[], boolean[])
  • equals(float[], boolean[])
  • equals(short[], boolean[])
  • equals(int[], boolean[])
  • equals(long[], boolean[])
  • equals(Object[], boolean[])

源码

每一个方法里的源码实现基本都差不多,我们看下equals(int[], boolean[])的源码实现

代码很简单,若两个数组的长度相等,且每一个位置的元素也相等,则认为这两个数组相等

/**
 * Returns <tt>true</tt> if the two specified arrays of ints are
 * <i>equal</i> to one another.  Two arrays are considered equal if both
 * arrays contain the same number of elements, and all corresponding pairs
 * of elements in the two arrays are equal.  In other words, two arrays
 * are equal if they contain the same elements in the same order.  Also,
 * two array references are considered equal if both are <tt>null</tt>.<p>
 *
 * @param a one array to be tested for equality
 * @param a2 the other array to be tested for equality
 * @return <tt>true</tt> if the two arrays are equal
 */
public static boolean equals(int[] a, int[] a2) {
    if (a==a2)
        return true;
    if (a==null || a2==null)
        return false;

    int length = a.length;
    if (a2.length != length)
        return false;

    for (int i=0; i<length; i++)
        if (a[i] != a2[i])
            return false;

    return true;
}

使用

public class Test {
    public static void main(String[] args) {
        int[] array1 = new int[]{1, 2, 3};
        int[] array2 = array1;
        int[] array3 = new int[]{1, 2, 3};
        int[] array4 = new int[]{4, 5, 6};
        if(Arrays.equals(array1, array2)) {
            System.out.println("array1等于array2");
        } else {
            System.out.println("array1不等于array2");
        }
        if(Arrays.equals(array1, array3)) {
            System.out.println("array1等于array3");
        } else {
            System.out.println("array1不等于array3");
        }
        if(Arrays.equals(array1, array4)) {
            System.out.println("array1等于array4");
        } else {
            System.out.println("array1不等于array4");
        }
    }
}

 运行结果如下

array1等于array2
array1等于array3
array1不等于array4

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值