当前位置: 首页 > news >正文

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));
}

相关文章:

  • 大模型架构记录2
  • 阿里云 ESA 游戏行业解决方案|安全防护、加速、低延时的技术融合
  • 2025.3.9机器学习笔记:文献阅读
  • 用低代码平台集成人工智能:无需专业开发也能实现智能化
  • 访问控制列表(ACL):深入理解网络的“通行规则”
  • Spring MVC 页面重定向返回后通过nginx代理 丢失端口号问题处理
  • 分布式锁—5.Redisson的读写锁二
  • C语言中数据的存储
  • AI进化太快,建立完善的AI理论迫在眉睫
  • 【嵌入式通信协议】串口的详细介绍
  • 数据库与存储优化
  • [Computer Vision]实验八:图像分割
  • RxJS与Redux革命性协同:打造高效、解耦的前端状态管理方案
  • Lab 3 Page Table
  • Linux系统基于ARM平台的LVGL移植
  • 深度学习语义分割数据集全景解析
  • 物理机、虚拟机、容器化怎么选择?
  • JT1078和GB28181差别在哪里?
  • C++(初阶)(二)——类和对象
  • 文件 IO
  • 多所院校高规格召开考研动员会,有学院考研报名率达84%
  • 海南省检察院专委李思阳被带走,去年曾遭人举报违规插手案件
  • 巴基斯坦副总理兼外长达尔将访华
  • 视频丨为救心梗同学缺席职教高考的小伙姜昭鹏完成补考
  • 《风林火山》千呼万唤始出来,戛纳首映后口碑崩盘?
  • 河南一女子被医院强制带走治疗,官方通报:当值医生停职