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;
吐槽
是自己思维不够活跃吗,怎么考虑一段代码要考虑好久的啊。
写代码效率太低了,别人写好几个了,自己才能写出一个来,甚至有时候都写不出来。
点赞