java中數組的複製

       數組複製使我們在編程過程中常常要使用到的,在java中數組複製我們大概可以分爲兩種,一種是引用複製,另一種就是深度複製(複製後兩個數組互不相干)。

下面我們就通過測試的方法來詳細看看什麼是引用複製和深度複製。

引用複製:

    顧名思義就是其值是引用的,值得改變會隨着被引用的對象改變。

System.out.println("引用複製-----------------------------");
			int[] e = {1,2,3,4,56,7,8};
			int[] f = e;
			for(int i=0;i<f.length;i++){
				System.out.println(f[i]);
			}
			System.out.println("更改原始一維數組引用複製-----------------------------");
			for(int i=0;i<e.length;i++){
				e[i]=1;
			}
			for(int i=0;i<f.length;i++){
				System.out.println(f[i]);
				
			}	
結果:

引用複製-----------------------------
1
2
3
4
56
7
8
更改原始一維數組引用複製-----------------------------
1
1
1
1
1
1
1

下面在展示下兩種深度複製的代碼:

有兩種方法:

一種是clone(),另一種是System.arraycopy().

System.out.println("一維數組深度複製-----------------------------");
			int[] a = {1,2,3,4,56,7,8};
			int[] b = (int[])a.clone();
			for(int i=0;i<b.length;i++){
				System.out.println(b[i]);
				
			}
			System.out.println("更改原始一維數組深度複製-----------------------------");
			for(int i=0;i<a.length;i++){
				a[i]=1;
			}
			for(int i=0;i<b.length;i++){
				System.out.println(b[i]);
				
			}	
			
			
			System.out.println("一維數組深度複製1-----------------------------");
			int[] c = {1,2,3,4,56,7,8};
			int[] d = new int[c.length];
			System.arraycopy(c,0, d, 0, c.length);
			for(int i=0;i<d.length;i++){
				System.out.println(d[i]);
			}
			System.out.println("更改原始一維數組深度複製1-----------------------------");
			for(int i=0;i<c.length;i++){
				c[i]=1;
			}
			for(int i=0;i<d.length;i++){
				System.out.println(d[i]);
				
			}	
			

結果顯示:

一維數組深度複製-----------------------------
1
2
3
4
56
7
8
更改原始一維數組深度複製-----------------------------
1
2
3
4
56
7
8
一維數組深度複製1-----------------------------
1
2
3
4
56
7
8
更改原始一維數組深度複製-----------------------------
1
2
3
4
56
7
8









    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章