public static <T, C extends Collection<T>> C addAll (
        C col, Iterable<? extends Collection<? extends T>> values)
    {
        for (Collection<? extends T> val : values) {
            col.addAll(val);
        }
        return col;
    }
public static < T , C extends Collection < T > > C addAll ( C col , Iterable < ? extends Collection < ? extends T > > values ) { for ( Collection < ? extends T > val : values ) { col . addAll ( val ) ; } return col ; }
Folds all the specified values into the supplied collection and returns it.