http://www.programcreek.com/2015/03/system-arraycopy-vs-arrays-copyof-in-java/
http://openhome.cc/Gossip/JavaEssence/EqualOperator.html
http://toyangel.pixnet.net/blog/post/27163971
可以使用
int[] newArray = Arrays.copyOf(oldArray,newArray length);
那它和System.arraycopy()有何差別
可以參考以下範例:
System.arraycopy()
Output:
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [0, 1, 2, 3, 4, 5, 0, 0, 0, 0]
Arrays.copyOf()
Output:
[1, 2, 3, 4, 5, 0, 0, 0, 0, 0] [1, 2, 3]
以下廢言,因為有這些錯誤,所以才特別筆記了這一篇。
--------------------------------------------------------------------------------
之前犯了低級錯誤,浪費不少時間。
依照記憶寫的,原本想要複製陣列:
很直覺就寫下
old array =xxxx;
new array = old array
當然這省略一些步驟加上這只是pseudo code而以。
所以想當然爾,每次old array改變時,new array也會跟著改變。(因為new array 是指向 old array的reference value → call by value)
沒有留言:
張貼留言