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绕晕
近期评论