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

相关推荐
happymaker06261 小时前
Spring框架学习日记——DAY02(依赖注入的方式)
windows
honder试试1 小时前
Elasticsearch(es)在Windows系统上的安装与部署(含Kibana)
windows·elasticsearch·jenkins
IT里的交易员2 小时前
【系统】Windows 安装 uv
windows·uv
我不是立达刘宁宇4 小时前
windows密码操作
windows
Royzst4 小时前
一、集合概述(前置基础)
开发语言·windows·python
时光追逐者4 小时前
一款基于 C# 开发的 Windows 10/11 系统增强工具,精简、优化、定制一站完成!
开发语言·windows·c#·.net
liuhuizuikeai5 小时前
菜品抽奖活动MFC+服务端
c++·windows·mfc
Kiling_07045 小时前
Java集合进阶:Collection与List详解
java·windows·list
Byron Loong5 小时前
【逆向】PE 解析器 / 加壳器 + 加壳步骤 + 手动脱壳思路
windows
康小汪5 小时前
IntelliJ IDEA 安装教程(Windows 版)
java·windows·intellij-idea