當前位置:
首頁 > 知識 > Java開發之 Java對數組的複製

Java開發之 Java對數組的複製

定義一個數組int[] a=; int[] b=a; 數組b只是對數組a的又一個引用,即淺拷貝。

如果改變數組b中元素的值,其實是改變了數組a的元素的值,要實現深度複製,可以用clone或者System.arrayCopy  int[] a=;int[] b=a.clone();b[0]=10;System.out.println(b[0]+" "+a[0]);但是clone和System.arrayCopy都是對一維數組的深度複製。  對於二維數組則不一樣:int[][] a={,};int[][] b=a.clone();b[0][0]=10;System.out.println(b[0][0]+" "+a[0][0]);輸出為10 10所以clone並不能直接作用於二維數組。  因為java中沒有二維數組的概念,只有數組的數組。所以二維數組a中存儲的實際上是兩個一維數組的引用。當調用clone函數時,是對這兩個引用進行了複製。  要證明,只需看下面的輸出int[][] a={,};int[][] b=a.clone();b[0][0]=10;System.out.println(b[0][0]+" "+a[0][0]);System.out.println(a[0]==b[0]);第5句輸出為true.用clone對二維數組進行複製,要在每一維上調用clone函數  int[][] a={,};int[][] b=new int[a.length][];for(int i=0;i


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 java學習吧 的精彩文章:

Java編程風格與命名 規範的整理
Java多態對象的 類型轉換
Java學習之—多態
寫好Java代碼的 30條經驗總結
Java其實很簡單

TAG:java學習吧 |