数组的equals方法

来源:互联网 发布:大数据时代的重要性 编辑:程序博客网 时间:2024/05/16 05:38

数组并没有对equals进行Override,依然是Object的equals
如:

public boolean equals(Object obj) { return (this == obj);}

因此数组使用equals时效果和“==”相同

//String的equals源码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;    }
public static void main(String[] args)     {        System.out.println("Hello World!");        char[] c1 = {'a','b','c','d','e'};        char[] c2 = {'a','b','c','d','e'};        //输出false        System.out.println("注意跟String的equals的区别:" + c1.equals(c2));        String s = "abcde";        //输出false,参考源码就可以知道,由于c1并不是String类型,故为false        System.out.println(s.equals(c1));        char[] c3 = s.toCharArray();        //输出false        System.out.println(c1.equals(c3));        //输出true,所以如果比较两个字符数组,可以使用Arrays的静态方法        System.out.println(Arrays.equals(c1,c3));    }
0 0
原创粉丝点击