Java tutorial
/* * Copyright WizTools.org * Licensed under the Apache License, Version 2.0: * http://www.apache.org/licenses/LICENSE-2.0 */ //package org.wiztools.commons; import java.util.ArrayList; import java.util.List; /** * * @author subwiz */ public final class ArrayUtil { /** * Determines if the passed object is of type array. * @param o The object to determine if it is an array. * @return true if the passed object is an array. * @throws NullPointerException when the passed object is null. */ public static boolean isArray(Object o) throws NullPointerException { if (o == null) throw new NullPointerException("Object is null: cannot determine if it is of array type."); else { return o.getClass().isArray(); } } /** * Concatenates all the passed parameters. * @param <T> * @param objs * @return */ public static <T> T[] concat(T[]... objs) { List<T> out = new ArrayList<T>(); int i = 0; T[] pass = null; for (T[] o : objs) { for (int j = 0; j < o.length; j++) { out.add(o[j]); i++; } pass = o; } return out.toArray(pass); } // Primitive types for quicker copy: public static short[] concat(short[]... objs) { int count = 0; for (short[] o : objs) { count += o.length; } final short[] out = new short[count]; int i = 0; for (short[] o : objs) { for (int j = 0; j < o.length; j++) { out[i] = o[j]; i++; } } return out; } public static int[] concat(int[]... objs) { int count = 0; for (int[] o : objs) { count += o.length; } final int[] out = new int[count]; int i = 0; for (int[] o : objs) { for (int j = 0; j < o.length; j++) { out[i] = o[j]; i++; } } return out; } public static long[] concat(long[]... objs) { int count = 0; for (long[] o : objs) { count += o.length; } final long[] out = new long[count]; int i = 0; for (long[] o : objs) { for (int j = 0; j < o.length; j++) { out[i] = o[j]; i++; } } return out; } public static byte[] concat(byte[]... objs) { int count = 0; for (byte[] o : objs) { count += o.length; } final byte[] out = new byte[count]; int i = 0; for (byte[] o : objs) { for (int j = 0; j < o.length; j++) { out[i] = o[j]; i++; } } return out; } public static char[] concat(char[]... objs) { int count = 0; for (char[] o : objs) { count += o.length; } final char[] out = new char[count]; int i = 0; for (char[] o : objs) { for (int j = 0; j < o.length; j++) { out[i] = o[j]; i++; } } return out; } public static float[] concat(float[]... objs) { int count = 0; for (float[] o : objs) { count += o.length; } final float[] out = new float[count]; int i = 0; for (float[] o : objs) { for (int j = 0; j < o.length; j++) { out[i] = o[j]; i++; } } return out; } public static double[] concat(double[]... objs) { int count = 0; for (double[] o : objs) { count += o.length; } final double[] out = new double[count]; int i = 0; for (double[] o : objs) { for (int j = 0; j < o.length; j++) { out[i] = o[j]; i++; } } return out; } public static boolean[] concat(boolean[]... objs) { int count = 0; for (boolean[] o : objs) { count += o.length; } final boolean[] out = new boolean[count]; int i = 0; for (boolean[] o : objs) { for (int j = 0; j < o.length; j++) { out[i] = o[j]; i++; } } return out; } }