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

相关推荐
软件资深者3 小时前
全能图片缩略图显示工具,体积较大,直接显示AI,PSD,EPS,PDF,INDD,TIFF,CR2,RAW等格式缩略图的图像解码包
windows·microsoft·pdf·windows11·系统修复
chinesegf7 小时前
Windows 系统中通过 Conda 「克隆」环境
windows·conda
C++ 老炮儿的技术栈7 小时前
不调用C++/C的字符串库函数,编写函数strcmp
c语言·开发语言·c++·人工智能·windows·git·visual studio
小新软件园8 小时前
PrintPage 打印 绿色版发票打印工具 批量打印 多维度设置更实用
windows·电脑·开源软件
luyun0202029 小时前
PDF神仙工具,批量处理
windows·pdf·figma
软件资深者9 小时前
win系统治理流氓软件、弹窗广告 +清理软件工具集合体
windows·microsoft·windows11·系统修复
CSD资源分享11 小时前
Claude Code 国内API配置完整指南
java·windows·claude·claude code
Hi2024021711 小时前
Windows录制浏览器音视频
windows·音视频
cs.shunzhang12 小时前
Windows 下 OpenCode使用 ChatGPT Pro/Plus 鉴权报错 403 的排查与解决
windows·chatgpt
天机玄正12 小时前
纯享-windows笔记本/电脑安装rocky-linux9
windows·电脑