Java中res.add(list)和res.add(new ArrayList<Integer>(list))的区别

结论与总结:

1.res.add(list)是浅拷贝,将res尾部指向了path地址,后续list内容的变化会导致res的变化。

2.res.add(new ArrayList<>()) 是深拷贝,开辟一个独立地址,地址中存放的内容为list链表,后续list的变化不会影响到res。

具体测试案例:

 输出结果:

 参考博客:

 参考1

参考2


版权声明:本文为m0_51816870原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。