当遇到list浅拷贝的问题

本文探讨了在Java中实现List深拷贝的不同方法,包括遍历、对象流及JSON转化等方式,并比较了它们的优劣。介绍了如何利用对象流进行序列化实现深拷贝,指出其速度优于JSON方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        近期做项目中,因为想通过list的addAll()实现list的拷贝,结果发现修改拷贝的集合,原集合也发生了变化,用new ArrayList(旧集合)这样也是拷贝,修改新集合就是修改旧集合,这样都是浅拷贝。

        如何进行深拷贝,查看资料,有的人采用的是遍历的方式,也有人采用把对象通过对象流的方式转化为byte数组,再转换为对象,也可以通过对象-> json ->对象的方式来实现list的拷贝,经我测试发现,对象流的方式比json的方式要快,选择方面就看你自己的喜好了,对象流的方式,可以考虑一些第三方的框架(如kryo-manual、fst等很多了,你查查看,这样主要摆脱对jdk版本的依赖)来实现对象流来实现序列化。

       就到这里,如果有问题,希望大家不吝赐教。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值