system.arraycopy()方法的使用

System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制

操作方法

  • 01

    System提供了一个静态方法arraycopy(),我们可以使用它来实现数组之间的复制。其函数原型是: public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

  • 02

    src:源数组; srcPos:源数组要复制的起始位置; dest:目的数组; destPos:目的数组放置的起始位置; length:复制的长度。 注意:src and dest都必须是同类型或者可以进行转换类型的数组

  • 03

    有趣的是这个函数可以实现自己到自己复制,比如: int[] fun ={0,1,2,3,4,5,6}; System.arraycopy(fun,0,fun,3,3); 则结果为:{0,1,2,0,1,2,6}; 实现过程是这样的, 1、先生成一个长度为length的临时数组,将fun数组中srcPos 到srcPos+length-1之间的数据拷贝到临时数组中, 2、再执行System.arraycopy(临时数组,0,fun,3,3).

  • 04

    不明白看看下面例子 public class TestArrayCopy { /** * @param args */ public static void main(String[] args) { // TODO 自动生成方法存根 String[] s1 = {"中国","山西","太原","TYUT","zyy","加拿大","不知道哪个州","不知道哪个市","不知道哪个学校","yxf"}; String[] s2 = new String[10]; System.arraycopy(s1, 0, s2, 0, 10); s2[6] = "假设蒙大拿州"; s2[7] = "假设蒙特利尔市"; s2[8] = "假设Montreal商学院"; System.out.println("This is s1"); for(int i = 0;i < s1.length ;i++){ System.out.print(s1[i] + ","); } System.out.println("\nThis is s2"); for(int i = 0;i < s2.length ;i++){ System.out.print(s2[i] + ","); } String[][] s3 = {{"中国","山西","太原","TYUT","zyy"},{"加拿大","不知道哪个州","不知道哪个市","不知道哪个学校","yxf"}}; String[][] s4 = new String[s3.length][s3[0].length]; System.arraycopy(s3, 0, s4, 0, s3.length); System.out.println("\nThis is original s3"); for(int i = 0;i < s3.length ;i++){ for(int j = 0; j< s3[0].length ;j++){ System.out.print(s3[i][j] + ","); } } s4[1][1] = "假设蒙大拿州"; s4[1][2] = "假设蒙特利尔市"; s4[1][3] = "假设Montreal商学院"; System.out.println("\nThis is s3 after s4 has changed."); for(int i = 0;i < s3.length ;i++){ for(int j = 0; j< s3[0].length ;j++){ System.out.print(s3[i][j] + ","); } } System.out.println("\nThis is s4"); for(int i = 0;i < s4.length ;i++){ for(int j = 0; j < s4[0].length ; j++){ System.out.print(s4[i][j] + ","); } } } }

(0)

相关推荐

  • no jvm could be found on your system解决方法

    经常在安装某些程序时会出现no jvm could be found on your system的错误提示,导致出现这个问题的主要原因是电脑中没有装有java环境。解决的方法很简单,就是安装Java ...

  • 虚拟机error loading operating system解决方法

    常玩虚拟机的人都会遇到这种情况,虚拟机在运行中,电脑突然断电,当再次打开改虚拟机时,开机出现[ error loading operating system],如此莫名奇妙的提示.要修复改虚拟机该怎样 ...

  • java如何将新数据加入数组中

    java中的数组是不可变的,要想将新数据加入数组,核心就是新建一个更长的数组然后将老数据复制,新数据添加到后面. 但具体操作时有多种方式,下面一一介绍. 适用于新手的方法 01 对新手来说,最易于理解 ...

  • 开机出现error loading operating system的解决

    windows启动时出现error loading operating system 步骤/方法 01 "error loading operating system"是提示你&q ...

  • 解锁system,获取完整root

    目前部分android手机锁定了system目录,玩家朋友在root手机后会发现手机还是没法修改系统目录,这时你就需要解锁system目录了,网上有很多使用电脑解锁的方法,每次系统升级,都要在电脑里捣 ...

  • Android下的POS打印机调用的简单实现教程

    本文基于GP58系列,它可以兼容ESC/POS指令集,对EPSON的打印机通用. Android下的设备调试,如果设备提供了驱动,按照厂家的驱动调试即可;设备未提供驱动,只能按照通用的方法进行调试.这 ...

  • java如何创建一个栈

    栈(Stack)是限定只能在一段进行插入和删除操作的线性表.进行插入和删除操作的一端称为"栈顶"(top),另一端称为"栈底"(bottom).栈的插入操作称为 ...

  • java如何提高循环效率

    针对如何提高循环效率,小编认为可供程序利用的资源(内存.CPU时间.网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务.优化通常包含两方面的内容:减小代码的体积,提高代码的运行效 ...

  • JAVA命名规范

    定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失.(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性) 操作方法 01 Packag ...