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中




posted @ 2020-04-08 17:57  GuiQuQu  阅读(15758)  评论(0)    收藏  举报