java将多个array数据合并,并完美实现null安全

java将多个array数据合并,并完美实现null安全

核心代码
public static <T> T[] concat(T[] first, T[]... rest) {
       int totalLength = 0;
       T[] result = null,temp = null;
       if(first!=null && first.length>0) {
           totalLength = first.length;
       }
       if (totalLength == 0){
           for (T[] array : rest) {
               if(array != null && array.length>0) {
                   if (totalLength == 0){
                       temp = array;
                       totalLength += array.length;
                   }else {
                       temp = concat(temp,array);
                   }
               }
           }
           result = temp;
       }else {
           for (T[] array : rest) {
               if(array!=null && array.length>0) {
                   totalLength += array.length;
               }
           }
           if (totalLength != 0){
               result = Arrays.copyOf(first, totalLength);
               int offset = first.length;
               for (T[] array : rest) {
                   if(array!=null && array.length>0) {
                       System.arraycopy(array, 0, result, offset, array.length);
                       offset += array.length;
                   }
               }
           }
       }
       return result;
} 

public static <T> T[] concat(T[] first, T[] second) {
    T[] result = Arrays.copyOf(first, first.length + second.length);
    System.arraycopy(second, 0, result, first.length, second.length);
    return result;

}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mose-x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值