+
+ public static <T> T[] concatArrays(T[]... arrays)
+ {
+ if (arrays == null)
+ return null;
+ if (arrays.length == 1)
+ return arrays[0];
+
+ T[] result = arrays[0];
+ for (int i = 1; i < arrays.length; i++)
+ {
+ result = concatTwoArrays(result, arrays[i]);
+ }
+ return result;
+ }
+
+ private static <T> T[] concatTwoArrays(T[] array1, T[] array2)
+ {
+ T[] result = Arrays.copyOf(array1, array1.length + array2.length);
+ System.arraycopy(array2, 0, result, array1.length, array2.length);
+ return result;
+ }
+