DESKTOP-7D2I5KK_20200831-郎航

问题

        int[] a = { 1  , 3 , 5 , 7 , 9 };
        int[] b = { 1  , 3 , 5 , 7 , 9 };

        System.out.println( a.equals( b ) ); // false

为什么返回的是false呢

解决

所有数组对象对应的类型都没有重写equals(Object)方法。

应该用下面这个方法来比较。

System.out.println( Arrays.equals( a , b ) ); // true
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;

吐槽

是自己思维不够活跃吗,怎么考虑一段代码要考虑好久的啊。

写代码效率太低了,别人写好几个了,自己才能写出一个来,甚至有时候都写不出来。

标签

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