6Luffy6

导航

merge函数

merge函数

今天在刷lc,从灵神题解中学到的

来源:560. 和为 K 的子数组 - 力扣(LeetCode)
java8 merge()方法被引入到HashMap类中,用于简化键值对操作,在处理键值对时,提供一个重新映射函数来决定如何合并新旧值

merge语法

hashmap.merge(key, value, remappingFunction)
  • key: 键
  • value: 值
  • remappingFunction: 重新映射函数,用于重新计算值

传统

int ans = 0;
Map<Integer, Integer> mp = new HashMap<>(n + 1);
    for(int sj : s){
    ans += mp.getOrDefault(sj - k, 0);
	int num = mp.getOrDefault(sj, 0);
	mp.put(sj, num + 1);
}

merge

Integer::sum

int ans = 0;
Map<Integer, Integer> mp = new HashMap<>(n + 1);
    for(int sj : s){
    ans += mp.getOrDefault(sj - k, 0);
    mp.merge(sj, 1, Integer::sum);
}

自定义

int ans = 0;
Map<Integer, Integer> mp = new HashMap<>(n + 1);
    for(int sj : s){
    ans += mp.getOrDefault(sj - k, 0);
    mp.merge(sj, 1, (oldValue, newValue)->(oldValue + newValue));
}

posted on 2025-03-06 22:26  极客三刀流  阅读(48)  评论(0)    收藏  举报