Java怎樣將一個list的內容復制到另一個list,並且彼此不互相影響


通常我是用的復制的方法有

1.==

2.

List<ChessPiece> l = chess.getPieces();
List<ChessPiece> list = new ArrayList<>(l);

  

3.

List<ChessPiece> l = chess.getPieces();
List<ChessPiece> list = new ArrayList<>();
list.addAll(l);

4.使用循環進行復制

方法1,2,3均為淺層復制,當修改原list時,新list也會改變。並不達到產生一個新list的效果。
因此若想進行防御式復制,只能使用循環復制,而且需要注意,如果你的list內的類型也是可變類的話,當你修改原list的對應位置的內容時,新list的對應內容也會被修改。
要保證不進行修改,對內容也需要進行復制,然后再將其存入新list中





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM