class ArrayUtil {

    public static <T> T[] concatArrays( T[] initial, T[]... additional )
    {
        int length = initial.length;
        for ( T[] array : additional )
        {
            length += array.length;
        }
        T[] result = Arrays.copyOf( initial, length );
        int offset = initial.length;
        for ( T[] array : additional )
        {
            System.arraycopy( array, 0, result, offset, array.length );
            offset += array.length;
        }
        return result;
    }

    private  ArrayUtil();

}