0
点赞
收藏
分享

微信扫一扫

JAVA中equals和Arrays.equals()源码

快乐码农Alan007 2022-02-17 阅读 76
java
//一般的对象a.equals(b):未重写则比较地址
public boolean equals(Object obj) {
        return (this == obj);
    }
//String类对象的StringA.equals(B):先比较地址是否相同,若不同则比较内容
public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String)anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                        return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }
//Arrays.equals(数组a,数组b):比较的是数组的内容
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;
    }
举报

相关推荐

0 条评论