当前位置: 首页 > 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));
}
http://www.dtcms.com/a/54066.html

相关文章:

  • 大模型架构记录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
  • 豆包大模型 MarsCode AI 刷题专栏 001
  • Kotlin协程(六)Flow流
  • 掌握高效大模型任务流搭建术(二):链式流程如何赋能 AI 处理能力提升
  • Chapter 1 Introduction
  • qt open3dAlpha重建
  • proto3语法
  • 修改git fetch后引用没更新
  • 1493. 删掉一个元素以后全为 1 的最长子数组
  • Redis - 核心原理深度解析:线程模型、持久化与高可用性
  • TensorFlow深度学习实战(10)——迁移学习详解