Java tutorial
//package com.java2s; import java.lang.reflect.Array; public class Main { /** * Appends an element to array. */ public static <T> T[] append(T[] buffer, T newElement) { T[] t = resize(buffer, buffer.length + 1); t[buffer.length] = newElement; return t; } /** * Appends an element to <code>String</code> array. */ public static String[] append(String[] buffer, String newElement) { String[] t = resize(buffer, buffer.length + 1); t[buffer.length] = newElement; return t; } /** * Appends an element to <code>byte</code> array. */ public static byte[] append(byte[] buffer, byte newElement) { byte[] t = resize(buffer, buffer.length + 1); t[buffer.length] = newElement; return t; } /** * Appends an element to <code>char</code> array. */ public static char[] append(char[] buffer, char newElement) { char[] t = resize(buffer, buffer.length + 1); t[buffer.length] = newElement; return t; } /** * Appends an element to <code>short</code> array. */ public static short[] append(short[] buffer, short newElement) { short[] t = resize(buffer, buffer.length + 1); t[buffer.length] = newElement; return t; } /** * Appends an element to <code>int</code> array. */ public static int[] append(int[] buffer, int newElement) { int[] t = resize(buffer, buffer.length + 1); t[buffer.length] = newElement; return t; } /** * Appends an element to <code>long</code> array. */ public static long[] append(long[] buffer, long newElement) { long[] t = resize(buffer, buffer.length + 1); t[buffer.length] = newElement; return t; } /** * Appends an element to <code>float</code> array. */ public static float[] append(float[] buffer, float newElement) { float[] t = resize(buffer, buffer.length + 1); t[buffer.length] = newElement; return t; } /** * Appends an element to <code>double</code> array. */ public static double[] append(double[] buffer, double newElement) { double[] t = resize(buffer, buffer.length + 1); t[buffer.length] = newElement; return t; } /** * Appends an element to <code>boolean</code> array. */ public static boolean[] append(boolean[] buffer, boolean newElement) { boolean[] t = resize(buffer, buffer.length + 1); t[buffer.length] = newElement; return t; } /** * Resizes an array. */ public static <T> T[] resize(T[] buffer, int newSize) { Class<T> componentType = (Class<T>) buffer.getClass().getComponentType(); T[] temp = (T[]) Array.newInstance(componentType, newSize); System.arraycopy(buffer, 0, temp, 0, buffer.length >= newSize ? newSize : buffer.length); return temp; } /** * Resizes a <code>String</code> array. */ public static String[] resize(String[] buffer, int newSize) { String[] temp = new String[newSize]; System.arraycopy(buffer, 0, temp, 0, buffer.length >= newSize ? newSize : buffer.length); return temp; } /** * Resizes a <code>byte</code> array. */ public static byte[] resize(byte[] buffer, int newSize) { byte[] temp = new byte[newSize]; System.arraycopy(buffer, 0, temp, 0, buffer.length >= newSize ? newSize : buffer.length); return temp; } /** * Resizes a <code>char</code> array. */ public static char[] resize(char[] buffer, int newSize) { char[] temp = new char[newSize]; System.arraycopy(buffer, 0, temp, 0, buffer.length >= newSize ? newSize : buffer.length); return temp; } /** * Resizes a <code>short</code> array. */ public static short[] resize(short[] buffer, int newSize) { short[] temp = new short[newSize]; System.arraycopy(buffer, 0, temp, 0, buffer.length >= newSize ? newSize : buffer.length); return temp; } /** * Resizes a <code>int</code> array. */ public static int[] resize(int[] buffer, int newSize) { int[] temp = new int[newSize]; System.arraycopy(buffer, 0, temp, 0, buffer.length >= newSize ? newSize : buffer.length); return temp; } /** * Resizes a <code>long</code> array. */ public static long[] resize(long[] buffer, int newSize) { long[] temp = new long[newSize]; System.arraycopy(buffer, 0, temp, 0, buffer.length >= newSize ? newSize : buffer.length); return temp; } /** * Resizes a <code>float</code> array. */ public static float[] resize(float[] buffer, int newSize) { float[] temp = new float[newSize]; System.arraycopy(buffer, 0, temp, 0, buffer.length >= newSize ? newSize : buffer.length); return temp; } /** * Resizes a <code>double</code> array. */ public static double[] resize(double[] buffer, int newSize) { double[] temp = new double[newSize]; System.arraycopy(buffer, 0, temp, 0, buffer.length >= newSize ? newSize : buffer.length); return temp; } /** * Resizes a <code>boolean</code> array. */ public static boolean[] resize(boolean[] buffer, int newSize) { boolean[] temp = new boolean[newSize]; System.arraycopy(buffer, 0, temp, 0, buffer.length >= newSize ? newSize : buffer.length); return temp; } }