java – 如何返回常量集合
发布时间:2020-12-15 05:17:41 所属栏目:Java 来源:网络整理
导读:java中是否有一种方法可以返回对类集合的引用,我无法更改它或更改其元素的数据? 所以,如果我有一张地图Map Integer,Set String没有人可以获得对设定值的引用并向其添加元素? 解决方法 保证Map中的所有对象都不能被修改的唯一方法,即使Map本身是不可修改的,
java中是否有一种方法可以返回对类集合的引用,我无法更改它或更改其元素的数据?
所以,如果我有一张地图Map< Integer,Set< String>>没有人可以获得对设定值的引用并向其添加元素? 解决方法
保证Map中的所有对象都不能被修改的唯一方法,即使Map本身是不可修改的,也就是让对象本身不可变.
unmodifiableMap()方法保证Map不能被修改,但它根本不保证它包含的对象.看看this,了解如何使对象不可变.有关具体示例,请参阅String类的工作原理:您无法修改字符串中的字符,并且所有可以更改字符串的方法(例如:toUpperCase())实际上都返回一个新字符串.这就是你想要的Map中对象的行为. 鉴于问题中的地图包含Set< String>作为它的值,然后在将它们添加到映射之前对集合使用Collections.unmodifiableSet()将使它们成为不可变的,因为如上所述,String已经是不可变的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |