List间相互赋值问题

本文探讨了List间赋值的两种方式:通过引用赋值会导致两个List指向同一内存区域,对任一List的操作都会影响另一个。为实现真正赋值,文章介绍了四种方法,确保对一个List的操作不会影响另一个。这些方法适用于包含自定义实体类的List场景。
摘要由CSDN通过智能技术生成

List间相互赋值问题

一、用list1 = list的方式进行赋值
List<String> list = Arrays.asList(new String[] {"1","2","3"});
//假如此时list内存对应地址的id = 1
List<String> list1 = list;
//此时list1的id = 1
或者:
List<String> list1 = new Arraylist<>();
//新创建了一个对象list1,此时list的id = 4
list1 = list
//当执行这一步操作时并不会将list里的内容拷贝至list1,而是将list1的id更改为1

注意事项:此时list1与list对应的是同一个地址块,即list1只是list的一个引用,对list1进行操作就是对list进行操作,所以对list1进行操作后,无论是输出list还是list1所得到的结果都是经过操作后所得到的结果。

例如:有一个list里面存了数字3、5、1,然后创建了一个新的list1,使list1 = list ,然后对list1进行升序排序,那么你最后无论输出list还是list1,所得到的结果都是1、3、5,同理你对list进行操作得到的结果也是一样。即无论你是对list还是list1进行操作,其实就是对同一块内存里的数据进行操作。

二、真正的将一个list里的值赋给另一个list对象(四种方法)
  1. List<In
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值