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

相关推荐
Y3ai13 分钟前
Windows 11 Docker Desktop 保姆级安装使用教程
windows·docker·容器
春日见3 小时前
Tool文件夹:瑞士军刀库
运维·服务器·windows·深度学习·自动驾驶
ward RINL3 小时前
Redis 安装及配置教程(Windows)【安装】
数据库·windows·redis
Milu_Jingyu6 小时前
Windows与Ubuntu文件共享详细指南
linux·windows·ubuntu
开开心心就好7 小时前
免费好用:PPT演示计时提醒工具
windows·计算机视觉·计算机外设·逻辑回归·excel·深度优先·csdn开发云
芳草萋萋鹦鹉洲哦10 小时前
NSSM注册服务并设置开机自启动
windows
loriloy11 小时前
Python 环境管理工具 pyenv-win (windows版本)
windows·python·pyenv-win
x***r15111 小时前
Python 3.9.7安装教程 Windows版:解压+管理员运行+自定义路径+IDLE快捷方式指南
windows
William Dawson11 小时前
【Java Stream 流:高效、优雅的集合操作 ✨】
java·windows·python
金刚狼8812 小时前
Active和Passive两种扫描模式下,接收到的BLE广播报文的不同
windows