码迷,mamicode.com
首页 > 其他好文 > 详细

Map的keySet()与values()方法

时间:2018-04-06 21:21:09      阅读:997      评论:0      收藏:0      [点我收藏+]

标签:span   info   safe   http   有一个   需要   set   调用   post   

当我们想要获取一个Map中的所有键或者值时,会发现Map()已经有对应的方法:

keySet()方法:返回Map中所有键的Set<>

values()方法:返回Map中所有值的Collection<>

但是这里有一个需要注意的问题是,从keySet()文档与values()文档中我们可以发现

技术分享图片

图1.keySet()文档

技术分享图片

图2.values()文档

文档中说明,keySet()返回的是Map中键的映射,values()返回的是Map中值的映射,对Map中所作的一切修改均会反映到返回的两个集合中,反之亦然

也就是说,如果你在keySet()或values()返回的集合中进行了增添或者删除等操作,Map()中的键(值)同样会受到影响

因此,当我们调用两个方法获取Map()中的键与值时,一定要注意:返回的集合是对Map()对应值的引用,而非复制。如果想要对其键(值)集合进行操作而不对Map造成影响,需要重新建立集合并将keySet()与values()返回集合中的键(值)全部添加进去,而非直接在其返回的集合上进行操作

(话说,这难道不是不符合Safety from rep exposure吗)

Map的keySet()与values()方法

标签:span   info   safe   http   有一个   需要   set   调用   post   

原文地址:https://www.cnblogs.com/code-thisworld/p/8728674.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!