code: public static <T> Collection<T> multiply(Iterable<T> self, Number factor) {
          Collection<T> selfCol = asCollection(self);
          int size = factor.intValue();
          Collection<T> answer = createSimilarCollection(selfCol, selfCol.size() * size);
          for (int i = 0; i < size; i++) {
              answer.addAll(selfCol);
          }
          return answer;
      }
docs: Create a Collection composed of the elements of this Iterable, repeated
  a certain number of times.  Note that for non-primitive
  elements, multiple references to the same instance will be added.
  <pre class="groovyTestCase">assert [1,2,3,1,2,3] == [1,2,3] * 2</pre>
  
  Note: if the Iterable happens to not support duplicates, e.g. a Set, then the
  method will effectively return a Collection with a single copy of the Iterable's items.
  
  @param self   an Iterable
  @param factor the number of times to append
  @return the multiplied Collection
  @since 2.4.0