java 数组的拷贝 对象数组的拷贝 System.arraycopy函数

 

 /*
java 数组的操作   System类的arraycopy静态函数用于数组拷贝   数组是不能越界的
对象数组的复制实际上是复制的引用的拷贝  也就是对象的地址 
*/

class Point
{
 int x;
 int y;
 Point(int x,int y)
 {
  this.x=x;
  this.y=y;
 }
}
class  Test
{
 public static void main(String []args)
 {
  /*int a[]=new int[]{1,2,3,4,5};
  int b[]=new int[5];
  System.arraycopy(a,0,b,0,a.length);   //5个参数  原数组 起始index  数组2   起始index  拷贝长度 
  for(int n=0;n<b.length;n++)
  {
   System.out.println(b[n]);
  }
  */
  Point a[]=new Point[]{new Point(1,2),new Point(3,4),new Point(3,9)};
  Point b[]=new Point[3];
  System.arraycopy(a,0,b,0,3);  //拷贝的是对象的引用 修改拷贝一样会修改原来数据 
  for(int n=0;n<a.length;n++)
  {
   System.out.println("x="+b[n].x+",y="+b[n].y);
  }
  
  //对拷贝进行修改会修改原来数据
  b[1].x=9;
  b[2].x=5;
  b[0].x=7;
   for(int n=0;n<a.length;n++)
  {
   System.out.println("x="+a[n].x+",y="+a[n].y);
  }
  
  
  
  
  
  
  
  
 }

 
 
 
 
 
}

 


 

posted on 2011-07-27 17:34  风尘女子  阅读(344)  评论(0编辑  收藏  举报

导航