显示标签为“array”的博文。显示所有博文
显示标签为“array”的博文。显示所有博文

2012年3月29日星期四

获取两个数组的差集(A|B)U(B|A)




<T> T[] different(T[] newArray, T[] oldArray) {
if (newArray == null) {
return oldArray;
}
if (oldArray == null) {
return newArray;
}
Set<T> newSet = new HashSet<T>(Arrays.asList(newArray));
Set<T> temp = new HashSet<T>(Arrays.asList(newArray));
Set<T> oldSet = new HashSet<T>(Arrays.asList(oldArray));
newSet.removeAll(oldSet);
oldSet.removeAll(temp);
newSet.addAll(oldSet);
return (T[]) newSet.toArray();
}


判断两个数组是否相等[compare two array]


 <T> boolean isDiffrent(T[] a, T[] b) {
if (a != null && b != null) {
if (a.length != b.length)
return true;
Comparator comparator = new Comparator<T>() {
public int compare(T o1, T o2) {
return 0;// TODO need to implement
}
};
Arrays.sort(a, comparator);
Arrays.sort(b, comparator);
return !Arrays.equals(a, b);
}
return false;//!null.equals(null)
}