java陣列的複製
阿新 • • 發佈:2019-03-18
java陣列的複製,因為之前程式碼寫著寫著有點懵,所以總結一下記錄一下。
主要有以下幾種方式:
- clone
- System.arraycopy 和 Arrays.copyOfRange
- Arrays.copyOf
- for迴圈
最後需要注意的是基本型別的拷貝是不影響原陣列的值的,如果是引用型別,就不能在這用了,因為陣列的拷貝是淺拷貝,對於基本型別可以,對於引用型別是不適合的。
1.使用Object.clone()方法
輸出:
clone方法是從Object類繼承過來的,基本資料型別(String ,boolean,char,byte,short,float ,double,long)都可以直接使用clone方法進行克隆,其實我覺得有點神奇的。
沒想到String陣列也是可以的,據說是因為String型別是因為其值不可變所以才可以使用(不求甚解)。
2.System.arraycopy
輸出:
這是java系統給我們提供的一個native方法
Arrays.copyOfRange
輸出:
這裡底層的實現也是System.arraycopy
3.Arrays.copyOf
輸出:
這裡看到底層實現還是System.arraycopy
4.for迴圈
這個方法也是很萬能的,就是寫起來效率比較低!
參考:
https://blog.csdn.net/abyjun/article/details/46444921
https://blog.csdn.net/weixin_36210698/article/details/70876912