zoukankan      html  css  js  c++  java
  • 数组追加的工具类

    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));*/
        }
    
    }
  • 相关阅读:
    万维网
    MySQL客户端输出窗口显示中文乱码问题解决办法
    mysql数据库delete数据时不支持表别名
    Java 实现在固定区间内随机生成整数
    【面试】MySQL 中NULL和空值的区别?
    一个因MySQL大小写敏感导致的问题
    windows查看服务的状态
    不就是Select Count语句吗,竟然能被面试官虐的体无完肤!
    Java 代码的精优化
    java服务宕机原因查询
  • 原文地址:https://www.cnblogs.com/zj0208/p/9101277.html
Copyright © 2011-2022 走看看