@SafeVarargs public static <T> T[] insert(final T[] array, final int index, final T... values) { VerifyArgument.notNull(array, "array"); VerifyArgument.inRange(0, array.length, index, "index"); if (values == null || values.length == 0) { return array; } VerifyArgument.elementsOfType(array.getClass().getComponentType(), values, "values"); final int newItemCount = values.length; final T[] newArray = (T[])Array.newInstance( array.getClass().getComponentType(), array.length + newItemCount ); System.arraycopy(array, 0, newArray, 0, index); final int remaining = array.length - index; if (remaining > 0) { System.arraycopy(array, index, newArray, index + newItemCount, remaining); } System.arraycopy(values, 0, newArray, index, newItemCount); return newArray; }
@SafeVarargs public static <T> T[] insert(final T[] array, final int index, final T... values) { VerifyArgument.notNull(array, "array"); VerifyArgument.inRange(0, array.length, index, "index"); if (values == null || values.length == 0) { return array; } VerifyArgument.elementsOfType(array.getClass().getComponentType(), values, "values"); final int newItemCount = values.length; final T[] newArray = (T[])Array.newInstance( array.getClass().getComponentType(), array.length + newItemCount ); System.arraycopy(array, 0, newArray, 0, index); final int remaining = array.length - index; if (remaining > 0) { System.arraycopy(array, index, newArray, index + newItemCount, remaining); } System.arraycopy(values, 0, newArray, index, newItemCount); return newArray; }
@SafeVarargs public static <T> T[] insert(final T[] array, final int index, final T... values) { VerifyArgument.notNull(array, "array"); VerifyArgument.inRange(0, array.length, index, "index"); if (values == null || values.length == 0) { return array; } VerifyArgument.elementsOfType(array.getClass().getComponentType(), values, "values"); final int newItemCount = values.length; final T[] newArray = (T[])Array.newInstance( array.getClass().getComponentType(), array.length + newItemCount ); System.arraycopy(array, 0, newArray, 0, index); final int remaining = array.length - index; if (remaining > 0) { System.arraycopy(array, index, newArray, index + newItemCount, remaining); } System.arraycopy(values, 0, newArray, index, newItemCount); return newArray; }