我厌倦了以下模式:
value = map.get(key);
if (value == null) {
value = new Object();
map.put(key, value);
}
当您使用嵌套映射来表示多维结构时,此示例仅触及要编写的额外代码的表面。
我确定某处存在可以避免这种情况的方法,但我的谷歌搜索没有任何相关结果。有什么建议么?
原文由 Sridhar Sarnobat 发布,翻译遵循 CC BY-SA 4.0 许可协议
我厌倦了以下模式:
value = map.get(key);
if (value == null) {
value = new Object();
map.put(key, value);
}
当您使用嵌套映射来表示多维结构时,此示例仅触及要编写的额外代码的表面。
我确定某处存在可以避免这种情况的方法,但我的谷歌搜索没有任何相关结果。有什么建议么?
原文由 Sridhar Sarnobat 发布,翻译遵循 CC BY-SA 4.0 许可协议
Java 8 为 Map 添加了不错的方法: compute 、 computeIfPresent 、 computeIfAbsent
实现你所需要的:
Object existingOrCreated = map.computeIfAbsent(key, (k) -> new Object());
原文由 iTake 发布,翻译遵循 CC BY-SA 3.0 许可协议
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
3 回答1.6k 阅读✓ 已解决
这
来自 Java 8
有
它返回现有值,如果该值为空,则插入给定值。因此,如果键不存在值,则返回 null 并插入给定值,否则返回 现有值
如果您需要对价值进行惰性评估