首页 > 其他 > 详细

Map的keySet()与values()方法

时间:2018-04-06 20:41:59      阅读:193      评论:0      收藏:0      [点我收藏+]

当我们想要获取一个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()方法

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!