code: public static <T> List<T> disjoint(final List<? extends T> list1, final List<? extends T> list2) {
  		List<T> intersection = intersection(list1, list2);
  		List<T> towIntersection = union(intersection, intersection);
  		return difference(union(list1, list2), towIntersection);
  	}
docs: list1, list2的补集（在list1或list2中，但不在交集中的对象，又叫反交集）产生新List.
  
  copy from Apache Common Collection4 ListUtils，但其并集－交集时，初始大小没有对交集*2，所以做了修改