immutable
不可变数据集
![](https://img2020.cnblogs.com/blog/1520288/202108/1520288-20210827092540276-714799290.png)
![](https://img2020.cnblogs.com/blog/1520288/202108/1520288-20210827092540283-1907207080.png)
objA与objB共享数据状态
immutable是尽可能复用老的节点
安装
![](https://img2020.cnblogs.com/blog/1520288/202108/1520288-20210827092540229-133825289.png)
Map 类似对象
例子:
将一个普通一层对象转成Map:
![](https://img2020.cnblogs.com/blog/1520288/202108/1520288-20210827092540281-266877151.png)
每次操作都会返回一个新的对象
将多层对象转成Map:
![](https://img2020.cnblogs.com/blog/1520288/202108/1520288-20210827092540377-175500494.png)
![](https://img2020.cnblogs.com/blog/1520288/202108/1520288-20210827092540324-2024711444.png)
不相等,不是同一个引用地址
用
来判断就能判断两个map是否一样
![](https://img2020.cnblogs.com/blog/1520288/202108/1520288-20210827092540275-1180619242.png)
List 类似数组
![](https://img2020.cnblogs.com/blog/1520288/202108/1520288-20210827092540373-1084467057.png)
![](https://img2020.cnblogs.com/blog/1520288/202108/1520288-20210827092540374-1401325572.png)
用途:
immutable 它的优势是提高性能,节约内存,降低复杂度
降低复杂度:
![](https://img2020.cnblogs.com/blog/1520288/202108/1520288-20210827092540326-145016827.png)
节约内存:
![](https://img2020.cnblogs.com/blog/1520288/202108/1520288-20210827092540133-1896143392.png)
p1和p2是完全不同的两个对象,但是p1和p2实现了部分数据的完全共享
方便回溯:
因为每次都是新对象,所以狠方便回溯到之前的每一步,当时的状态还保留着
博主掘金技术社区地址——https://juejin.cn/user/1908407918660871/posts