不可变 vs 不可修改
Immutable 和 Unmodifiable区别
Collection类
提供包装方法,可以把普通集合包装成不可修改的Unmodifiable
集合,不可修改实际上是一个视图
使用当前不可修改集合虽然不能进行增删操作
1 | List<String> originalList = new ArrayList<>(); |
但是别人对集合的变化还是会反映出来
1 | List<String> originalList = new ArrayList<>(); |
Immutable
的机制更类似于快照,使用Guava
提供的不可变集合类复制后,和原始集合脱离了关系
1 | List<String> originalList = new ArrayList<>(); |
即不可变包装后,彻底脱离了原集合,而不可修改包装后只是一个只读视图
最后无论是不可修改还是不可变,都是约束集合的,不约束集合内部的数据,内部数据的可变性不受影响。
一分也是爱~
版权声明
This site by Linest is licensed under a Creative Commons BY-NC-ND 4.0 International License.
由Linest创作并维护的博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。