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