陣列的拷貝

2021-09-24 01:56:43 字數 1431 閱讀 1216

1.迴圈遍歷

public class test ;

object objects = test.demo1(str);

for (object obj:objects) }

/*** 陣列遍歷賦值

* @param obj 要拷貝的陣列

* @return 返回拷貝後的新陣列

*/public static object demo1(object obj)

3.system.arraycopy(src,srcpos,dest,despos,length)

* @param      src      the source array.

* @param srcpos starting position in the source array.

* @param dest the destination array.

* @param destpos starting position in the destination data.

* @param length the number of array elements to be copied.

public static object  demo3(object  obj)
4.clone

public static object  demo4(object  obj)
clone是淺拷貝

只是複製引用

例:

public static void test();

string clone = str.clone();

str[0]="test";

system.out.println(clone[0]);

stringbuilder sb1 = new stringbuilder("abc");

stringbuilder sb2 = new stringbuilder("abc");

stringbuilder sb3 = new stringbuilder("abc");

stringbuilder sb4 = new stringbuilder("abc");

stringbuilder sb = ;

stringbuilder clone1 = sb.clone();

system.out.println(clone1[0]);

}

結果:

string 是不可改變的,重新賦值時,會在常量池中新建立乙個字串。

clone只是複製了引用,只 是賦值了str陣列中的引用,當str[0]的引用改變,clone的引用不變,結果還是「abc」,sb陣列證明了這一點。

陣列的拷貝

我們在平時的陣列想等操作時候,會想到想數一樣的讓他們直接兩個陣列相等,就像a b 陣列,我們會想到直接a b,但這樣在c語言中是不可行的,在c語言中,陣列拷貝要用 memcpy 包含在標頭檔案 include中。下面我們先來說整數陣列的複製,直接上 include includeusing name...

陣列的拷貝

1 t指向s之後,修改了t 0 的值,所以bob就變成了tom,列印出來的是tom。注意 1 這個不是拷貝,因為兩者指向的是同乙個物件,拷貝是賦值乙份新的出來,在新的物件上進行的修改與原物件無關。2 陣列的拷貝 1 system中有提供arraycopy方法,從from陣列到to陣列 fromind...

陣列拷貝(深拷貝 淺拷貝)

底層都是使用system.arraycopy object src,int srcpos,object dest,int destpos,int length 方法完成陣列元素拷貝任務的 方法說明 如果newlength original.length,那麼會將原陣列中前newlength個元素拷貝...