private static int size(final Iterable<?> values) {
		int size = 0;
		if (values instanceof Collection) {
			size = ((Collection<?>)values).size();
		} else {
			for (Object value : values) {
				++size;
			}
		}

		return size;
	}
Return a <i>new</i> {@code Array} with the given {@code values} prepended.

@since 3.4

@param values the values to prepend
@return a <i>new</i> {@code Array} with the elements of {@code this}
       array and the given {@code values} appended.
@throws NullPointerException if the given {@code values} iterable is
        {@code null}
jenetics/src/main/java/io/jenetics/internal/collection/Array.java