Java 不可变集合
2022-08-31 08:40:31
来自 Java 1.6 集合框架文档:
不支持任何修改操作(如 、和 )的集合称为不可修改的集合。[...]另外保证 Collection 对象中的任何更改都不可见的集合称为不可变。
add
remove
clear
第二个标准让我有点困惑。鉴于第一个集合是不可修改的,并且假设原始集合引用已被丢弃,那么第二行中提到的更改是什么?它是否是指集合中保存的元素的变化,即元素的状态?
第二个问题:
为了使集合不可变,如何提供指定的附加保证书?如果集合中某个元素的状态由线程更新,那么处于该状态的这些更新在保存不可变集合的线程上不可见是否足以实现不可变性?
为了使集合不可变,如何提供指定的其他保证?