code: public static <T> Set<T> intersection(Collection<Set<T>> sets) {
  		Set<T> result = new HashSet<>();
  		if (sets.isEmpty()) {
  			return result;
  		}
  		Iterator<Set<T>> iter = sets.iterator();
  		result.addAll(iter.next());
  		while (iter.hasNext()) {
  			result.retainAll(iter.next());
  		}
  		return result;
  	}
docs: Determines the intersection of a collection of sets.
  
  @param <T>
  @param sets
  Basic collection of sets.
  @return The set of common elements of all given sets.