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