public static <T> void concat(T[] sourceFirst, T[] sourceSecond, T[] dest) {
        System.arraycopy(sourceFirst, 0, dest, 0, sourceFirst.length);
        System.arraycopy(sourceSecond, 0, dest, sourceFirst.length, sourceSecond.length);
    }
@Test
    public void concat() {
        Integer[] first = new Integer[]{1, 2, 3};
        Integer[] second = new Integer[]{4};
        Integer[] concatenated = new Integer[4];
        ArrayUtils.concat(first, second, concatenated);
        assertEquals(4, concatenated.length);
        assertEquals(Integer.valueOf(1), concatenated[0]);
        assertEquals(Integer.valueOf(2), concatenated[1]);
        assertEquals(Integer.valueOf(3), concatenated[2]);
        assertEquals(Integer.valueOf(4), concatenated[3]);
    }