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的值也会进行改变

相关推荐
0xSec笔记本挖呀瓦呀挖9 小时前
Windows后门应急(二)--计划任务后门分析与处置|Windows取证分析
windows·安全·web安全·网络安全·系统安全·网络攻击模型·安全威胁分析
harrain11 小时前
windows下载安装MySQL9.5的缺少Redistributable问题解决
windows·mysql
PythonFun15 小时前
职场小白如何一键安装Windows系统
windows
一目Leizi15 小时前
Windows 系统下安装 Ubuntu 双系统详细教程(图文指南)
linux·windows·ubuntu
new_zhou16 小时前
Windows环境c++开发dump文件生成(优化方案)
c++·windows·qt
super_lzb16 小时前
【技术实战系列】windows系统如何模拟tail命令效果
windows·tail命令·日志查看·windows tail·windowstail命令
fengsen521131417 小时前
Windows操作系统部署Tomcat详细讲解
java·windows·tomcat
Full Stack Developme17 小时前
spring #{} 与 ${} 区别
windows·python·spring
魑-魅-魍-魉18 小时前
金仓数据库(KingbaseES)V8R3 Windows 版大小写敏感设置详解
数据库·windows·金仓
瀚高PG实验室19 小时前
hghac8008漏洞扫描处理
linux·网络·windows·瀚高数据库