DESKTOP-ESBC3OR_20200902-蒋生桃

问题

        int[] a = { 1  , 3 , 5 , 7 , 9 };
        int[] b = { 1  , 3 , 5 , 7 , 9 };
        System.out.println( a == b ); // false
        System.out.println( a.equals( b ) ); // false
        System.out.println( Arrays.equals( a , b ) ); // true

为什么a.equals( b )Arrays.equals( a , b )的比较结果不同?

解决

a.equals( b )的比较:

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

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;

        return ArraysSupport.mismatch(a, a2, length) < 0;
    }

吐槽

今天,date,time,datetime绕晕

标签


© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1