详解Map.merge()

本文详细介绍了Java中Map的merge()方法,包括其在计算唯一单词出现次数场景的应用、逐步改进的代码示例以及在ConcurrentHashMap中的使用。merge()方法允许在键不存在时插入值,或在键存在时根据指定函数合并新值与旧值,提供了灵活且强大的数据处理能力。
摘要由CSDN通过智能技术生成

今天介绍Map的merge方法,让我们来看看它的强大之处。

在JDK的API中,这样的一个方法它是很特别的,它很新颖,它是值得我们花时间去了解的,同时也推荐你可以运用到实际的项目代码中,对你们应该帮助很大。Map.merge()。这可能是Map中最通用的操作。但它也相当模糊,几乎很少人会去使用它。

背景介绍

merge()可以解释如下:它将新的值赋值给到key中(如果不存在)或更新具有给定值的现有key(UPSERT)。让我们从最基本的例子开始:计算唯一的单词出现次数。在java8之前的时候,代码非常混乱,实际的实现其实已经失去了本质层面的设计意义。

var map = new HashMap<String, Integer>();
words.forEach(word -> {
    var prev = map.get(word);
    if (prev == null) {
        map.put(word, 1);
    } else {
        map.put(word, prev + 1);
    }
});

复制代码

按照上述代码的逻辑,假设给定一个输入集合,输出的结果如下;

var words = List.of("Foo", "Bar", "Foo", "Buzz", "Foo", "Buzz", 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值