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

相关推荐
x***r1511 小时前
R语言 4.5.1安装教程 Windows版:解压+管理员运行+自定义路径+启动验证指南
windows
非凡ghost3 小时前
Zen Browser:基于 Firefox 的极简开源浏览器,隐私与速度兼得
前端·网络·windows·学习·开源·firefox·软件需求
木梓辛铭3 小时前
windows下部署openclaw详细方法及错误处理办法
windows·学习方法·持续部署
John_ToDebug3 小时前
死锁案例:UI 线程阻塞等待跨进程 COM 注入
c++·windows·笔记
oscar9996 小时前
Memurai:Redis官方认可的Windows原生解决方案
数据库·windows·redis
暖阳常伴7 小时前
Windows安装MongoDB
数据库·windows·mongodb
星辰引路-Lefan8 小时前
全平台 Docker 部署 CPA(CLIProxyAPI Plus) 灵活定制指南 (Linux/Windows)——接入Codex
linux·windows·docker·ai·ai编程
YQ_0110 小时前
Windows + Ubuntu 双系统安装:不使用 GRUB,直接在开机时选择系统
linux·windows·ubuntu
小王不爱笑13210 小时前
Java List 集合全面解析:ArrayList、LinkedList 与 Vector 的深度对比
java·windows·list
※※冰馨※※10 小时前
【QT】System error #1455: 页面文件太小,无法完成操作
开发语言·windows·qt