CollectionUtils.addAll与Collections.copy结合实现深拷贝
import org.apache.commons.collections.CollectionUtils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class CopyTest {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
list.add(i);
}
//list深度拷贝
List<Integer> newList = new ArrayList<>();
CollectionUtils.addAll(newList, new Object[list.size()]);
Collections.copy(newList, list);
newList.set(0, 10);
System.out.println("原list值:" + list);
System.out.println("新list值:" + newList);
}
}
public class Address{
private String address;
public Address(String address){
this.address = address;
}
public String getAddress(){
return address;
}
public void setAddress(String address){
this.address = address;
}
类的深拷贝
public class Address implements Cloneable
{
private String address;
public Address(String address){
this.address = address;
}
public String getAddress(){
return address;
}
public void setAddress(String address){
this.address = address;
}
@Override
protected Object clone() {
Address address = null;
try {
address = (Address) super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return address;
}
}
参考文章:
https://blog.csdn.net/u010648159/article/details/79144154
https://blog.csdn.net/weixin_43671497/article/details/84930808