前言
相信很多看客都听闻过深拷贝、浅拷贝 , 但是在日常使用的过程中,是否真的有关心过或者遭遇过呢?
不啰嗦,一起来看看。
正文
接下来我通过示例,来复现一下 list.stream浅拷贝 这个事 :
首先是一个对象 Product :
/**
* 产品
*/
@Data
public class Product {
/**
* 级别
*/
private Integer level;
/**
* 售价
*/
private BigDecimal amount;
/**
* 库存
*/
private Long stockNum;
}
然后是模拟获取到的这个Product的一个list集合数据:
private static List<Product> getTestList() {
List<Product> products=new ArrayList<>();
Product product1=new Product();
product1.setLevel(100);
本文通过示例解释了Java中list.stream().sorted().collect()操作产生的是浅拷贝,导致对原集合的修改会影响到新集合。文章讨论了添加、删除、修改元素时的不同影响,并提供了序列化、字节流、MapperFacade等深拷贝的方法来避免问题。
订阅专栏 解锁全文
1209

被折叠的 条评论
为什么被折叠?



