首页 > 解决方案 > Java 8 中的 Lamba 函数的行为

问题描述

我一直在研究 leetcode 问题,遇到了一个需要增加 HashMap 中现有键/值对的值的问题。我发现大家一致认为,在 Java 8 中实现这一点的最佳方法是使用以下代码:

myMap.computeIfPresent(key, (k, v) -> v + 1);

在这个例子中,为什么v++failed 代替v + 1?

其次,除了在这里提出问题来解决这个问题之外,我还能去哪里?我让代码可以工作,但想了解为什么我的第一直觉v++不起作用。

标签: javalambdahashmap

解决方案


的返回值是递增之前v++的值。v

由于在这个 lambda 中唯一重要的是返回值,这相当于只使用(k, v) -> v.

如果您想使用速记,则可以使用++v,但v + 1更清晰。


推荐阅读