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

相关推荐
love530love16 小时前
精简版|Claude-HUD 插件介绍 + 一键安装教程
人工智能·windows·笔记
秋917 小时前
MySQL 8.0.46 全平台安装与配置详解(Windows/Linux/macOS)
linux·windows·mysql
善恶怪客17 小时前
LocalSend基本使用
windows
MengMeng_102318 小时前
win10 蓝牙连接音响没有声音设备选项
windows
强殖装甲凯普19 小时前
处理Windows没有msi的默认打开方式
windows·安装·msi
mOok ONSC19 小时前
mysql9.0windows安装
windows·adb
T0uken21 小时前
基于 vcpkg 与 LLVM-MinGW 的 Qt6 静态链接开发方案
c++·windows·qt
无心水21 小时前
【Hermes:Skill系统深度】21、Skill 调试与冲突解决:为什么没触发?怎么修复? —— Honcho 智能体排障完全手册
人工智能·windows·openclaw·养龙虾·hermes·养马·honcho
Python私教1 天前
FuturesDesk 集成 OMC 多智能体编排提效
人工智能·windows·开源
旺财矿工1 天前
小白速通:OpenClaw 2.6.6 Win11 本地化部署完整教程
人工智能·windows·openclaw·龙虾·一键部署小龙虾