Revision: 13946
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 14, 2009 04:59 by kungfoo
Initial Code
package ch.hsr.ifs.liquid.util; import static java.lang.System.arraycopy; import java.lang.reflect.Array; public class Arrays { private static final int ENLARGE_FACTOR = 2; public static <T> T[] enlargeArray(T[] array) { T[] enlargedArray = initArray(array, array.length * ENLARGE_FACTOR); arraycopy(array, 0, enlargedArray, 0, array.length); return enlargedArray; } public static <T> T[] trimArray(T[] array, int length) { T[] trimmedArray = initArray(array, length); arraycopy(array, 0, trimmedArray, 0, length); return trimmedArray; } public static <T> T[] composeArray(T[] array1, T[] array2) { int length1 = array1.length; int length2 = array2.length; T[] composedArray = initArray(array1, length1 + length2); arraycopy(array1, 0, composedArray, 0, length1); arraycopy(array2, 0, composedArray, length1, length2); return composedArray; } @SuppressWarnings("unchecked") private static <T> T[] initArray(T[] array, int newSize) { return (T[]) Array.newInstance(array.getClass().getComponentType(), newSize); } }
Initial URL
Initial Description
Initial Title
Resizing Generic Arrays in Java in A Generic Way
Initial Tags
java
Initial Language
Java