java:List的深拷贝

最近从C++转JAVA很多不适应的地方

List的拷贝就是其中之一

//假如申请一个List
List<Integer> temp = new ArrayList<>();
//另申请一个直接相等, List
<Integer> t1 = temp;

temp.add(1);
t1.forEach(System.out::println);//输出1

可见是浅拷贝

如需深拷贝,可用

1.

List<Integer> t1 = new ArrayList<>(temp);  //最简洁

2.

List<Integer> t1 = new ArrayList<>();
Collections.addAll(t1, new Integer[temp.size()]; //0数组
Collections.copy(t1,temp); //拷贝,实则覆盖替换,不是追加

3.

可以把temp变为Integer[]数组

再通过Collections.addAll赋值

posted @ 2020-04-25 17:04  十里坡剑神—》》》》  阅读(487)  评论(0编辑  收藏  举报