对于java数组,在比较它们的各个元素是否相等时,较好的方法如下代码。
既节省了我们写代码的工作量(省去了我们人为遍历数组、对于基于Object不同类型的数组都可以直接套用),又可以依赖JAVA现有的代码优化来提高我们程序的效率。
private boolean isArrayEquals(Object[] a, Object[] b){
if(a==null && b==null){
return true;
}else if(a==null && b!=null){
return false;
}else if(a!=null && b==null){
return false;
}
if (a.length != b.length) {
return false;
}
if(! a[0].getClass().getName().equals(b[0].getClass().getName())){
// 对于不同数据类型的数组,返回false。
return false;
}
SortedSet setA = new TreeSet(Arrays.asList(a));
SortedSet setB = new TreeSet(Arrays.asList(b));
return setA.equals(setB);
}