再进行判断的时候,我们往往会考虑空数组和数组的长度为0到底有没有区别
空数组是你创建的这个数组没有在栈中分配内存的,也就是你在堆中new出来的这个数组并没有指向堆中任何内存
而数组长度为零则是你创建的这个数组是指向栈中的空间的,但是,你并没有向这个空间里填写元素,所以数组的长度为零
这两个是完全不同的情况,在进行判断的时候要进行区分
public static boolean isEqual(int[] arr1,int[] arr2) {
if((arr1 ==null &&arr2!=null)||(arr1!=null&&arr2==null)) {
return false;
}
if(arr1==null &&arr2==null) {
return true;
}
//比较长度
if(arr1.length!=arr2.length) {
return false;
}
//长度相等再比较元素,避免数组溢出
for(int i=0;i<arr1.length;i++) {
if(arr1[i]!=arr2[i]){
return false;
}
}
return true;
}
所以这也是我们一开始为什么非那么大力气去判断数组是不是空数组的原因