java - Java 8 中的 Lamba 函数的行为
问题描述
我一直在研究 leetcode 问题,遇到了一个需要增加 HashMap 中现有键/值对的值的问题。我发现大家一致认为,在 Java 8 中实现这一点的最佳方法是使用以下代码:
myMap.computeIfPresent(key, (k, v) -> v + 1);
在这个例子中,为什么v++
failed 代替v + 1
?
其次,除了在这里提出问题来解决这个问题之外,我还能去哪里?我让代码可以工作,但想了解为什么我的第一直觉v++
不起作用。
解决方案
的返回值是递增之前v++
的值。v
由于在这个 lambda 中唯一重要的是返回值,这相当于只使用(k, v) -> v
.
如果您想使用速记,则可以使用++v
,但v + 1
更清晰。
推荐阅读
- java - 是否有 Spring boot 特定的 maven 插件来生成 rpm 文件
- c++ - C++ 中 - 运算符的重载
- r - 如何阻止 rstudio bookdown 尝试生成 pdf
- mongodb - 聚合管道计数和
- r - 如何删除上 10% 分位数的值
- reactjs - ReactJS - 在状态和道具之间传递数据
- jmeter - 在非 GUI 模式下运行时,JMeter 结果日志不包括父样本,我需要父样本
- zabbix - 添加或更改在 docker 中执行的 zabbiz 的语言
- c# - 使用数组输出 0-10000 的所有素数
- airflow - 如何跳过 Airflow 上的任务?