java - 如何使用自定义函数接口(interface)和在 ArrayList 中采用 2 个参数的方法?

标签 java arraylist java-stream functional-interface

@FunctionalInterface
public interface Test{

     int sum(int a, int b);

}

我们如何使用这个 sum 方法来添加 ArrayList 的所有元素? 注意:也想使用流。

一些用户建议 sum 方法已经可以用于此目的;我的目的不是对列表的元素求和,而是了解我们如何在列表上使用自定义功能界面。

最佳答案

假设你的功能接口(interface)如下:

@FunctionalInterface
public interface Test {
    int sum(int a, int b);
}

您可以使用lambda函数来实现功能接口(interface)(sum方法),并使用流中的reduce方法(如果您想使用流,理想情况下不需要sum方法,因为lambda函数可以直接在流中使用减少方法):

Test test = (a, b) -> a+b;
someArrayList.stream().reduce(0, test::sum);

关于java - 如何使用自定义函数接口(interface)和在 ArrayList 中采用 2 个参数的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58713190/

相关文章:

java - 带条件的 RxJava 多循环

java - 获取给定 JVM 实例中所有当前加载的类的列表

java - 嵌套 For 循环转换为 Lambda 和 Map 比较

java - 使用 Java 流和 groupingBy 创建嵌套 map

java - 将结果集转换为 Java 模型对于一百万条记录来说速度缓慢

java - 如何删除下面java代码中数组列表中每个值之前的空格

java - 使用 ArrayList Java 从数据库检索下一个图像

android - 如何阻止 Android ListView 在滚动后重置值?

java - 什么时候使用 Collectors.groupingByConcurrent?

Java 8 句子流