数组追加的工具类
import java.util.Arrays; /** * 数组追加的工具类 */ public class ArrayUtil { /** * 追加src的全部元素到result尾部 * * @param desc * @param src * @return */ public static <T> T[] appendArray(T[] desc, T[] src) { // 特殊情况 if (null == desc || null == src) { return (null == desc) ? src : desc; } // 原结果数组长度 int descLength = desc.length; // 原添加数组长度 int srcLength = src.length; // 结果数组扩容(必须接收一下) desc = Arrays.copyOf(desc, descLength + srcLength); // 数组追加 System.arraycopy(src, 0, desc, descLength, srcLength); // 返回追加后的完整数组 return desc; } /** * 追加src的全部元素到result尾部 * * @param desc * @param src * @return */ public static byte[] appendByteArray(byte[] desc, byte[] src) { return ArrayUtil.appendByteArray(desc, src, src.length); } /** * 追加src的前count个元素到result尾部 * * @param desc * @param src * @param count * @return */ public static byte[] appendByteArray(byte[] desc, byte[] src, int count) { // 特殊情况1 if (null == src) { return desc; } // 特殊情况2,此时append不为null if (null == desc) { byte[] result = new byte[count]; // count值大于src的长度时会报数组越界的异常,此处不处理 System.arraycopy(src, 0, result, 0, count); return result; } // 原结果数组长度 int orignalLength = desc.length; // 结果数组扩容 int newLength = orignalLength + count; desc = Arrays.copyOf(desc, newLength); // 数组追加 System.arraycopy(src, 0, desc, orignalLength, count); // 返回追加后的完整数组 return desc; } /** * 测试 */ public static void main(String[] args) { String[] arr1 = { "a", "b", "c" }; String[] arr2 = { "1", "2", "3" }; String[] result = ArrayUtil.appendArray(arr1, arr2); System.out.println(Arrays.toString(result)); /*byte[] desc = { 6, 7, 8 }; byte[] src = { 1, 2, 3, 4 }; int count = 2; // byte[] result = ArrayUtil.appendByteArray(desc, src, count); byte[] result = ArrayUtil.appendByteArray(desc, src); System.out.println(Arrays.toString(result));*/ } }