昨天遇到的了乙個問題,就是說,我把一些經常使用很少更新的資料放到乙個靜態變數中,在取值的使用直接賦值,由於賦值後的字段需要進行刪除資料,結果發現執行一段時間之後發現,集合為空了,經查詢發現原來物件的賦值是引用,如果操作這個引用物件就是對那個靜態變數做操作。如何解決這個問題哪?乙個方式就是在需要這個靜態變數時,採用物件的拷貝,別直接賦值。我的那個靜態變數是個list集合,所以我就介紹一些list集合拷貝的方式:
方法一:拷貝值的時候採用 new arraylist<>(要拷貝的list集合)
方法二:用list的clone()方法進行拷貝:靜態變數.clone()
方法三:通過list的add()方法把集合新增進去:要賦值的物件.addall(靜態變數)
方法四,也就是最笨的就是foreach新增。
Collection 集合的拷貝
2005年10月07日 21 18 00 using system using system.collections using system.collections.specialized namespace 集合的拷貝 key,namedvcoll key console.writeline 拷...
list集合的深拷貝和淺拷貝
淺拷貝是平常用的最多的,比如 源list list srclist new arrarylist 目標list list list new arrarylist list.addall srclist collections.copy list,srclist 淺拷貝拷貝的是list的位址,所以改變...
拷貝(clone)方法集合
淺拷貝,拷貝可列舉屬性 使用這種技術將會忽略原型鏈。此外,巢狀物件並不會被轉殖,只是複製了他們的引用,因此淺拷貝後巢狀物件和原始物件仍然指向同乙個物件。let a b console.log b 可用於深度轉殖乙個簡單的物件,但他是 cpu 密集型的且只允許接受有效的 json。因此不適用於含有函式...