黑马程序员技术交流社区

标题: 数组复制中arraycopy()方法的一点小问题 [打印本页]

作者: 杨胜利    时间: 2012-7-19 12:28
标题: 数组复制中arraycopy()方法的一点小问题
程序代码如下:
package java04;
public class ArrayCopySystem
{
/**
  * 使用System类所提供的Arraycopy()方法实现数组复制
  */
public static void main(String[] args)
{
  int[] arr1 = {1,2,3,4,5};
  int[] arr2 = new int[5];
  System.out.println("复制开始之前arr2中元素为:");
  for(int i=0; i<arr2.length; i++)
  {
   System.out.println(arr2+" ");
  }
  System.arraycopy(arr1, 0, arr2, 0, arr1.length);
  System.out.println();  //回车换行
  //将第一个数组从0位置开始的所有元素复制到第二个数组的0开始位置
  System.out.println("数组arr1中数据复制到数组arr2中后arr2中元素为:");
  for(int i=0; i<arr2.length; i++)
  {
   System.out.println(arr2+" ");
  }
  System.out.println();
}
}
问题:System.arraycopy(arr1, 0, arr2, 0, arr1.length);这行代码怎么理解?
          arr1, 0, arr2, 0, arr1.length分别表示什么?

  

作者: 梁俊    时间: 2013-1-2 17:20
System.arraycopy(arr1, 0, arr2, 0, arr1.length);这行代码怎么理解?
          arr1, 0, arr2, 0, arr1.length分别表示什么?

复制arr1数组,从0下标开始,复制的数量是arr1.length,复制给arr2,插入到从0下标开始的位置

API文档解释
arraycopy(Object src,int srcPos,Object dest,int destPos,int length)
src - 源数组。
srcPos - 源数组中的起始位置。
dest - 目标数组。
destPos - 目标数据中的起始位置。
length - 要复制的数组元素的数量。
作者: 李东城    时间: 2013-2-15 20:34
这种情况使用数组类Arrays可以解决,那里有copyOf方法,使用更简单。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2