栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用getOrDefault()之后应该使用put()还是putIfAbsent()?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用getOrDefault()之后应该使用put()还是putIfAbsent()?

getOrDefault
如果您想对替代值使用缺席值而不修改地图,则适用。如果要为不存在的键添加新值,则可以一次完成操作。

List<Bar> bars = itemsByFoo.computeIfAbsent(key, x -> new ArrayList<>());bars.add(someNewBar);

甚至

itemsByFoo.computeIfAbsent(key, x -> new ArrayList<>()).add(someNewBar);

最好的情况是,当

Map
实现被实现覆盖时(如)
HashMap
,此操作将仅进行一次哈希查找。

putIfAbsent
使用该
default
实现时,不仅要进行两次查找,而且,当然,大多数
Map
实现将为此提供一个查找实现。不过,组合
getOrDefault
putIfAbsent
仍然将承担在最好的情况下两个查找,而优化的
computeIfAbsent
确实只有一个。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/453810.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号