C List列表的深複製,引用型別深複製

2021-08-01 08:39:13 字數 860 閱讀 2355

student實體類:

public

class student

public

int age

}

準備乙個list列表,裡面放兩個元素。

list

originallist= new

list

();student s1 = new student();

originallist.add(s1);

student s2 = new student();

originallist.add(s2);

需求:深複製該列表。

定義乙個深複製list列表的方法。

public

list

copylist(list

originallist)

return

list;

}

呼叫該方法即可得到乙個新的列表。

listnewlist =copylist(originallist);
最後測試:

測試是否真的是深複製,而非淺複製。只要修改originallist(比如清空該列表),觀察newlist是否隨之變化。

// 測試:修改源列表

originallist[0].age = 15

;// 觀察新列表是否有變化

system.console

.writeline(newlist[0].age);

其他參考:

C List列表的深複製,引用型別深複製

需求 深複製該列表。student實體類 public class student public int age 準備乙個list列表,裡面放兩個元素。list originallist new list student s1 new student originallist.add s1 stud...

C List引用型別的轉殖

有時候我們想轉殖乙個list去做別的事,而不影響原來的list,我們直接在list後面加上小點點,發現並沒有clone這樣的擴充套件函式。這時候就只有自己擴充套件了。嘗試了三種方式,測試都通過了,至於效能方面我還沒有做測試。一 反射 1 public static listclone this li...

Python 列表切片陷阱 引用 複製與深複製

python 列表的切片和賦值操作很基礎,之前也遇到過一些坑,以為自己很懂了。但今天刷 codewars 時發現了乙個更大的坑,故在此記錄。python 列表賦值 複製 值 還是 引用 很多入門 python 的人會犯這樣乙個錯誤 在賦值操作 中搞不清是賦了 值 還是 引用 比如 a 1 2,3 b...