小編給大家分享一下java如何實現(xiàn)list的拷貝,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
專注于為中小企業(yè)提供網站制作、成都網站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)歷下免費做網站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網行業(yè)人才,有力地推動了數千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網站建設實現(xiàn)規(guī)模擴充和轉變。背景:
一開始是想的在進入一個新頁面的時候復制一份集合,留著后續(xù)操作,直接就寫了 List A=List B,后面發(fā)現(xiàn)在操作B的時候,A里面的數據也會跟著變化。
通過查詢發(fā)現(xiàn),原來直接用“=”是相當于java中相同內容的數組指向同一地址,即進行淺拷貝后A與B指向同一地址。造成的后果就是,改變B的同時也會改變A,因為改變B就是改變B所指向地址的內容,由于A也指向同一地址,所以A與B一起改變。復制一份獨立的數組可以使用下面的方法:
public class GoodsBean extends HttpResult implements Cloneable{ @Override protected Object clone() throws CloneNotSupportedException { GoodsBean o = null; try { o = (GoodsBean) super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return o; } public ArrayListdeep_clone(ArrayList cells, ArrayList clone_cells){ for(GoodsBean c : cells){ try { clone_cells.add((GoodsBean) c.clone()); } catch (CloneNotSupportedException e) { e.printStackTrace(); } } return clone_cells; } }
看完了這篇文章,相信你對java如何實現(xiàn)list的拷貝有了一定的了解,想了解更多相關知識,歡迎關注創(chuàng)新互聯(lián)-成都網站建設公司行業(yè)資訊頻道,感謝各位的閱讀!