如何创建不可变集合?
1、Java Collections API中的Colle罕铞泱殳ctions实用程序类为创建不可修改的集合提供了一些实用程序方法,如下图所示。
2、这很有用,因为对unmodifiableNumbers的任何引用都不能改变底层列表。如果对原始列表的引用仍然存在,则不可修改集合中引用的集合可以更改,如下图所示。
3、Guava专注于提供实用程序来创建不可修改的集合,这些集合也是不可变的。下图显示了这是如何工作的。
4、当然,这与不可修改的方法非常不同,因为这将生成集合的完整副本,因此,如果您打算使用这种方法,您应该注意任何可能成为问题的内存约束。
5、来自Java Collections API的不可修改方法简单地委托给底层集合,但拦截对任何更改方法的调用并抛出异常。
6、这意味着对底层集合上的线程安全性所做的任何优化仍然是不可修改方法的一部分,即使不可修改的集合不能被修改,因此是线程安全的。
7、因为使用Guava的copyOf返回一个复制的集合,它被优化为不变性;它不需要在访问元素时确保线程安全。他们根本无法改变。
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:32
阅读量:89
阅读量:96
阅读量:83
阅读量:95