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

相关推荐
liuyukuan5 小时前
如何在win11上打开 WSL2(Windows 的 Linux 子系统)?
linux·windows
寺中人5 小时前
Windows系统的动态磁盘卷
windows·系统·教程
忧郁的蛋~6 小时前
基于.NET的Windows窗体编程之WinForms数据表格
windows·.net
鼹鼠SDN9 小时前
手机访问家里局域网共享文件?MoleSDN 叶子路由一步融入家庭内网
windows·智能手机·远程控制
Han.miracle9 小时前
Redis 全套笔记:基础 API + 三大架构 + 缓存三大问题
java·windows·redis
水饺编程12 小时前
第5章,[标签 Win32] :获取设备环境的信息
c语言·c++·windows·visual studio
yuanpan14 小时前
Python 调用 DLL 动态库入门:Windows 下调用 C++ 与 C# 动态库完整示例
c++·windows·python
张赐荣14 小时前
一键禁用 Ctrl+Alt+Shift+Windows 打开 Office 全局快捷键实用工具
windows
鸽芷咕15 小时前
【已解决】Claude Code 报错“claude.exe 与 Windows 不兼容“的解决方法
windows·claude
bike兔兔15 小时前
Python实现CSV文件转Excel,一键格式转换办公小脚本
开发语言·windows·python