1. 程式人生 > >java 陣列的拷貝 物件陣列的拷貝 System.arraycopy函式

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);
  }
  
  
  
  
  
  
  
  
 }

 
 
 
 
 
}