ArrayList的深拷贝与浅拷贝

1、深拷贝

通过以下代码进行理解

java 复制代码
import java.util.ArrayList;
import java.util.List;
 
public class Demo {
    public static void main(String[] args) {
        List<Integer> c = new ArrayList<>();
        c.add(1);
        c.add(2);
        c.add(3);
 
        List<Integer> c1 = new ArrayList<>(c);//深拷贝
        System.out.println(c);
        System.out.println(c1);
    }
}

输出结果为:(c和c1输出的结果相同)

2、浅拷贝

通过以下代码进行理解

java 复制代码
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
public class Demo {
    public static void main(String[] args) {
        List<Integer> c = new ArrayList<>();
        c.add(1);
        c.add(2);
        c.add(3);
        c.add(4);
        c.add(5);
 
        System.out.println(c);
        List<Integer> c1 = c.subList(2,5);
        System.out.println(c1);
        List<Integer> c2 = Collections.singletonList(c1.set(2, 99));
        System.out.println(c1);
        System.out.println(c);
 
    }
}

输出结果为:

submit进行的是浅拷贝,因此c的值也会进行改变

相关推荐
Kiling_07043 分钟前
Java集合框架:List集合详解与应用
java·开发语言·windows
一个人旅程~25 分钟前
如何永久关闭bitlocker并防止出现更新后被强制加密?
linux·windows·经验分享·电脑
csdn2015_27 分钟前
java springboot 文件导入,判断第一列的值是否有重复
java·windows·spring boot
扬帆破浪29 分钟前
免费开源AI软件.桌面单机版,可移动的AI知识库,察元 AI桌面版:本地离线知识库的妥协与收益 老电脑跑察元AI的可行边界
人工智能·windows·开源·电脑·知识图谱
Lyrig~1 小时前
ClaudeCode-cli Windows终端安装,并配置Openrouter链接
windows
扬帆破浪1 小时前
免费开源AI软件.桌面单机版,可移动的AI知识库,察元 AI桌面版:本地离线知识库的真完全离线 内网无外网装察元AI的拼装步骤
人工智能·windows·开源·电脑·知识图谱
nature_forest2 小时前
vivado2018.2固化程序方法之.bin文件固化法
windows·fpga开发
code_whiter2 小时前
C++10(list)
c++·windows·list
夕除2 小时前
spring boot--08
开发语言·windows·python
new【一个】对象2 小时前
Python 包管理器uv
人工智能·windows·python