陣列複製

回覆文章
頭像
davidlan
文章: 167
註冊時間: 2014年 7月 28日, 09:09

陣列複製

文章 davidlan » 2014年 8月 1日, 11:40

int[] score1 = {...};
int[] score2 = new int[score1.length];

Original:
for (int i=0; i < score1.length; i++) {
score2 = score1;
}

System.arraycopy(...):
System.arraycopy(score1, 0, score2, 0, score1.length);//0: init index

Arrays.copyOf() for after JDK6:
int[] score2 = Arrays.copyOf(score1, score1.length);
or
int[] score2 = Arrays.copyOf(score1, score1.length *2);//all the value of tail half are 0

頭像
davidlan
文章: 167
註冊時間: 2014年 7月 28日, 09:09

Shallow copy 淺層複製 與 Deep cpy 深層複製

文章 davidlan » 2014年 8月 1日, 11:58

Object1 的 reference name1 assign 給 reference name2:
reference name1 與 reference name2 只向同一個Object1

System.arraycopy() 或 Arrasys.copyOf() 用在類別型態宣告的陣列時,都是執行淺層複製

深層複製: 每個index參考的物件都會被複製。

回覆文章