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

相关推荐
牛马工作号1 小时前
Docker Compose 部署 FreeRADIUS:从 AAA 原理到 Windows 有线 802.1X 认证实战
windows·docker·容器
李少兄18 小时前
Windows 11 环境下 BAT 脚本无法执行的排查与修复指南
windows
解道Jdon18 小时前
FigCraft把Figma用Rust从零重写了一遍
ide·windows·git·svn·eclipse·github·visual studio
zh731420 小时前
Docker Desktop on Windows 挂载问题根因分析
windows·docker·容器
Surpass-HC20 小时前
WSL2 windows-ubuntu
linux·windows·ubuntu
遇印记21 小时前
网络安全,数据链路层,物理层
运维·服务器·网络·windows·学习
mx_jun21 小时前
Wireshark 蓝牙 HCI 日志分析常用操作速查
windows·microsoft·hci·bt
艾iYYY21 小时前
思考: C++ 万能引用与完美转发
c++·windows·microsoft
小趴菜一只1 天前
SIEM-wazuh安装过程
运维·windows·安全·网络安全
MOONICK1 天前
COM 组件技术(三)
c++·windows