浅拷贝只是进行地址的拷贝,深拷贝将该内容拷贝一份并开辟一片新的内存地址进行存放数据。
方法 : new ArrayList<>(arrayList);

public static void main(String[] args) {
        //System.out.println(combine(4,2));
        ArrayList<Integer> arrayList = new ArrayList<>();
        for(int i=0;i<10;i++){
            arrayList.add(i);
        }
        ArrayList<Integer> arrayList2=arrayList;
        ArrayList<Integer> arrayList1 = new ArrayList<>(arrayList);
        System.out.println(arrayList1==arrayList);
        System.out.println(arrayList2==arrayList);
    }

java深拷贝复制list java arraylist深拷贝_java


可以发现直接赋值是浅拷贝,而 new ArrayList<>() 是深拷贝