public Array<T> append(final Iterable<? extends T> values) {
		final int size = size(values);
		final Array<T> array = newInstance(_length + size);

		for (int i = 0; i < _length; ++i) {
			array.set(i, get(i));
		}

		final Iterator<? extends T> it = values.iterator();
		for (int i = 0; i < size; ++i) {
			array.set(_length + i, it.next());
		}

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

@since 3.4

@param values the values to append
@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