参考博客:

https://blog.csdn.net/liu_005/article/details/72760392

https://blog.csdn.net/jaycee110905/article/details/9179227

在做一道算法题的时候用到数组合并,并且有性能要求,这里对Java数组合并进行学习总结。

分析可以得出,因为数组是定长的,所以解决方法,构造一个新数组,将需要合并的数组放到新数组里面。

使用Arrays.copyOf来构造一个合并之后长度的数组,并将其中一个数组放进去,另一个数组的空间填充,

然后调用System.arraycopy()方法,将另一个数组复制到新构造的数组。

也可以直接使用构造函数来构造,然后使用System.arraycopy两次将数组拷贝到构造的数组里。

用到的方法:

  1. System.arraycopy()方法
  2. Arrays.copyOf()方法

API里 System.arraycopy()方法

API里Arrays.copyOf()方法

数组合并的方法:

public static <T> T[] concat(T[] first, T[] second) {
//构造合并之后的数组,在这里使用Arrays.copy方法,属于合并数组的空间用null填充。
T[] result = Arrays.copyOf(first, first.length + second.length);
// 将合并数组的数据复制到之前构造好的空间里null填充的数据的位置。
System.arraycopy(second, 0, result, first.length, second.length);
return result;
}

最新文章

  1. iOS-数据持久化-CoreData
  2. Eclipse里面开发ExtJS程序
  3. 使用ResultSet,写了一个通用的查询方法
  4. java--依赖、关联、聚合和组合之间区别的理解
  5. mysql:1153 Got a packet bigger than ‘max_allowed_packet’ bytes的解决方法
  6. ListVeiw新增记录及 滚动条移动到指定位置
  7. .net通用权限框架B/S (五)--WEB(1)首页
  8. Ubuntu 定时任务中的环境变量设置
  9. 【python教程01】 编辑器
  10. 2.QT中操作word文档
  11. android动画之interpolator和typeEvaluator用法详解
  12. 轻量级集群管理软件-ClusterShell
  13. 洛谷P3916||图的遍历||反向建图||链式前向星||dfs
  14. cf里的一些简单组合数题
  15. 20162322 朱娅霖 作业011 Hash
  16. [PGM] Markov Networks
  17. Python 1.安装
  18. 8.1 C++输入输出类的层次
  19. Linux/Python学习路线
  20. 【BZOJ4827】 [Hnoi2017]礼物

热门文章

  1. 【75.28%】【codeforces 764B】Decoding
  2. Apply,Call,bind对比
  3. vue-learning:40 - Vuex - 第一篇:概念和基本使用
  4. WindowsDOS命令添加/创建/修改/删除服务
  5. codeforces 1167B Lost Numbers
  6. [译] 重新思考 1 号进程 / Rethinking PID 1
  7. python 实现整数的反转:给定一个整数,将该数按位逆置,例如给定12345变成54321,12320变成2321.
  8. 【萌新向】cartographer_ros最新安装指南 2019-12
  9. X-Admin&amp;ABP框架开发-代码生成器
  10. $loj530\ [LibreOJ\ \beta\ Round \#5]$ 最小倍数 数论