gpt4 book ai didi

java - 使用整数的加运算符作为 BiFunction

转载 作者:搜寻专家 更新时间:2023-11-01 01:25:09 25 4
gpt4 key购买 nike

我有一张 map ,我想在其中数数。在 Java 8 之前,我必须在映射中为每个键放置一个零,然后才能像 map.put(key, map.get(key)+1).

从 Java 8 开始,我现在可以使用 Map's merge method如以下示例所示:

public class CountingMap {

private static final Map<Integer, Integer> map = new HashMap<> ();

public static Integer add (final Integer i1,
final Integer i2) {
return i1 + i2;
}

public static void main (final String[] args) {
map.merge (0, 1, CountingMap::add);
System.out.println (map); //prints {0=1}
map.merge (0, 1, CountingMap::add);
System.out.println (map); //prints {0=2}
}

}

我的问题是,我可以将对 Integer 的 + 运算符的引用作为 BiFunction 传递,而不必声明我自己的 add 函数吗?

我已经尝试过 Integer::+Integer::operator+ 之类的东西,但这些都不起作用。

编辑: 正如 Tunaki 指出的那样,我本可以改用 Integer::sum。不过,我想知道是否有可能直接传递一个运算符作为引用。

最佳答案

在 Java 中无法传递 + 运算符。您可以在方法调用中直接实例化 add

map.merge (0, 1, (i, j) -> i + j);

或者赋值变量:

BiFunction<Integer, Integer, Integer> add = (i, j) -> i + j;

或者用 Integer::sum 做同样的事情

关于java - 使用整数的加运算符作为 BiFunction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39513941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com