相关疑难解决方法(0)

30
推荐指数
1
解决办法
1万
查看次数

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

我有一张地图,我想要计算一些东西.在java 8之前,我不得不在地图中为每个键放置一个零,然后才能这样map.put(key, map.get(key)+1).

从Java 8开始,我现在可以使用Map的合并方法,如下例所示:

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

}
Run Code Online (Sandbox Code Playgroud)

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

我已经尝试过类似的事情Integer::+,Integer::operator+但没有这些作品.

编辑:正如Tunaki指出的那样,我可以使用它Integer::sum.不过,我想知道是否有可能直接通过运营商作为参考.

java java-8

4
推荐指数
1
解决办法
1145
查看次数

标签 统计

java ×2

java-8 ×1