code: public static <T> List<T> difference(final List<? extends T> list1, final List<? extends T> list2) {
  		final List<T> result = new ArrayList<T>(list1);
  		final Iterator<? extends T> iterator = list2.iterator();
  
  		while (iterator.hasNext()) {
  			result.remove(iterator.next());
  		}
  
  		return result;
  	}
docs: list1, list2的差集（在list1，不在list2中的对象），产生新List.
  
  与List.removeAll()相比，会计算元素出现的次数，如"a"在list1出现两次，而在list2中只出现一次，则差集里会保留一个"a".