在数组的复制中,总共有四种方法可以实现。不过在追求效率上,本篇所要提到的System.arraycopy()方法,要比我们熟知的for循环快太多。考虑到这种方法使用不频繁,所以在接下来的学习中,我们先就System.arraycopy()概念、使用注意、参数进行介绍,最后带来复制数组的方法。

1、概念

将指定源数组中的数组从指定位置复制到目标数组的指定位置。

2、使用注意

System.arraycopy()在拷贝对象数组的时候,采用的是浅复制,复制结果是一维的引用变量传递给副本的一维数组,修改副本时,会影响原来的数组。

System.arrayCopy只拷贝已经存在数组元素。

3、参数

Object src:源数组

int srcPos:源数组要复制的开始位置

Object dest:目标数组

int destPos:目标数组放置的开始位置

int length:源数组要把多长的长度复制到目标数组

注意:src 和 dest都必须是同类型或者可以进行转换类型的数组

4、实例int[] i = new int[6];

int[] j = new int[9];

int[] k = new int[10];

Arrays.fill(i, 33);

Arrays.fill(j, 22);

Arrays.fill(k, 55);

System.out.println("i = " + Arrays.toString(i));

System.out.println("j = " + Arrays.toString(j));

System.out.println("k = " + Arrays.toString(k));

System.arraycopy(i, 0, j, 0, i.length);

System.out.println("复制后j = " + Arrays.toString(j));

System.arraycopy(i, 1, k, k.length/2, i.length/2);

System.out.println("复制后k = " + Arrays.toString(k));

/*

输出

i = [33, 33, 33, 33, 33, 33]

j = [22, 22, 22, 22, 22, 22, 22, 22, 22]

k = [55, 55, 55, 55, 55, 55, 55, 55, 55, 55]

复制后j = [33, 33, 33, 33, 33, 33, 22, 22, 22]

复制后k = [55, 55, 55, 55, 55, 33, 33, 33, 55, 55]

*/

以上就是java System.arraycopy()复制数组的方法,如果大家对于数组没有修改的需求,这种浅复制的方法也可以考虑下。更多Java学习指路:

java arraycopy 参数_java System.arraycopy()复制数组相关推荐

  1. java arraycopy方法_Java System.arrayCopy()方法

    System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制. 其函数原型是: /** * Copies an array from the specified sourc ...

  2. java arraycopy 参数_java 数组复制:System.arrayCopy 深入解析

    先看ArrayList源码中数组复制的代码: 其实ArrayList 就是一个数组的形式存放数据的.没有高深的地方. 他的性能在于他的索引能力,正因为他是数组形式,所以索引元素的时候他表现得非常的快速 ...

  3. java arraycopy 并发_java用arraycopy实现多击事件

    本文实例为大家分享了java用arraycopy实现多击事件的3种方法,供大家参考,具体内容如下 1.双击事件的实现 我们规定两次点击的事件间隔在500毫秒内为双击事件,这一值可以随意限定. bt_c ...

  4. java数组复制_Java自学-数组 复制数组

    Java 如何复制数组 数组的长度是不可变的,一旦分配好空间,是多长,就多长,不能增加也不能减少 步骤 1 : 复制数组 把一个数组的值,复制到另一个数组中 System.arraycopy(src ...

  5. java可选参数_Java可选

    java可选参数 In this article, we'll explore Java Optional class which was introduced in Java 8. 在本文中,我们将 ...

  6. java -jar 参数_java -jar 参数说明

    jvm 选项 Java启动参数共分为三类: 其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容: 其二是非标准参数(-X),默认jvm实现这些参数的功能,但是并不保证所有jv ...

  7. java 不定参数_java中不定长参数的实例用法

    java中不定长参数的使用方法 不定长参数方法的语法如下: 返回值 方法名(参数类型...参数名称) 在参数列表中使用"..."形式定义不定长参数,其实这个不定长参数a就是一个数组 ...

  8. java 适用参数_Java功能的适用性

    java 适用参数 Java语言和标准库功能强大,但功能强大, 责任重大 . 一方面看到很多用户代码滥用或滥用稀有的Java功能,另一方面却完全忘记了大多数基本功能之后,我决定撰写此摘要. 这不是每个 ...

  9. java 传入参数_java参数怎么传递参数

    计算机语言给子程序传递参数的方法有两种: 按值传递(call-by-value):这种方法将一个参数值复制成子程序的正式参数.这样,对子程序的参数的改变不影响调用它的参数. 引用调用(call-by- ...

最新文章

  1. 博为峰Java技术题 ——JavaSE Java 方法Ⅲ
  2. 套接字选项SO_LINGER
  3. SQL Server数据库字符集、版本类型、版本号、所在服务器名、语言SQL语句查询语法演示
  4. 《高性能JavaScript》第二章 数据存取
  5. drf1 rest restful规范
  6. Undo TableSpace ①.管理方法
  7. 从GlassFish 3.x扩展到WebLogic 12c Server
  8. 前端人员必须掌握哪些技术?常见缓存种类有什么?
  9. 杭电2540遮挡判断
  10. HDU 1069 Monkey and Banana 动态规划
  11. java基础---Java---面试题---银行业务调度系统(线程同步锁、枚举、线程池)
  12. 金蝶K3 如何添加其它出库单出库类型
  13. bootstrap 下拉列表获取_Bootstrap框架下下拉菜单的实现(代码示例)
  14. c++随手写写(链表栈)
  15. 电脑怎么自动锁定计算机,如何设置电脑,人一走开就可以自动上锁?
  16. 双系统,win7重装后,找回linux
  17. H3C-WX2510H对接OpenPortal网络准入认证计费系统实现Mac快速认证+Portal认证
  18. 2022上海省赛(A,E,G,H,M,N)
  19. 基础篇(二).ARMv8寄存器(2)
  20. 如何从Linux下载一个文件到本地

热门文章

  1. Git:移除文件----git rm命令的使用
  2. Rk安卓主板app开发之实时监听外部设备插入以及地址获取
  3. 35款开源工具助力IOT
  4. Sun Solaris 培训教材
  5. 广东专插本计算机专业学校有哪些,广东专插本A类学校有哪些专业可以报
  6. 牛客网前端面试题错题总结
  7. 盖茨VS.乔布斯:左脑和右脑模式的PK(转)
  8. 关闭电脑SSD的磁盘碎片整理
  9. 电脑桌宠怎么安装?血小板platelet桌宠Mac版安装教程
  10. 数据挖掘之朴素贝叶斯算法