陣列物件的複製

2021-08-02 02:04:34 字數 856 閱讀 3742

public static void main(string args);

int a2=a1;//乙個陣列物件可以被兩個陣列物件同時引用

a2[0]=6;

system.out.println(a1[0]);//6}

這種現象叫做陣列賦值,可以發現如果這樣複製,陣列物件沒有隔離性,不小心就修改了

所以使用陣列的複製實現陣列的隔離性

int a1=;

int a2 = new int[a1.length];

for(int i=0;i

a2[i]=a1[i];//將每個元素複製一遍

}a2[0]=9999;

system.out.println(a1[0]);//1沒有改變

這裡a1,a2指向不同的陣列物件

使用陣列的迭代方法迭代(iterator) 迭代的意思就是重複

1,for迴圈

2,arrays.tostring方法

陣列的複製更好的方法

int a = ;

int a2 =new int[a.length];

system.out.println(a[0]);

system.out.println(arrays.tostring(a));

int a3 = new int[a.length];

system.arraycopy(a2, 0, a3, 0, a3.length);

system.out.println(arrays.tostring(a3));

int a4 = arrays.copyof(a, a.length);

system.out.println(arrays.tostring(a4));

陣列物件的複製

複製物件重新賦值不改變原物件 直接賦值 var obj1 var obj2 obj1 console.log obj2 通過 object.assign 這個屬性來進行複製 var obj var obj2 object.assign obj console.log obj2 通過 for in 迴...

物件,陣列的深複製

如果物件的屬性值不是乙個物件的引用 object.assignfunction obj for var key in obj return newobj 2.即使物件的屬性是物件也可以 function deepcopy obj for var key in obj else return newo...

動態陣列類 物件的淺複製 物件深複製

1.將動態陣列封裝成類 include include using namespace std class point point int x,int y x x y y point int getx const int gety const void move int newx,int newy ...