首页 > 文章列表 > java Reduce的三种重载是什么

java Reduce的三种重载是什么

java reduce
428 2023-05-03

1、一个参数的reduce

格式

Optional<T> reduce(BinaryOperator<T> accumulator)
T result = a[0];  
for (int i = 1; i < n; i++) {
result = accumulator.apply(result, a[i]);  
}
return result;

2、两个参数的reduce

格式

T reduce(T identity, BinaryOperator<T> accumulator)
T result = identity;
for (int i = 0; i < n; i++) {
result = accumulator.apply(result, a[i]);  
}
return result;

3、三个参数的Reduce,其中get和set方法使用时省略。

格式

<U> U reduce(U identity, BiFunction<U, ? super T, U> accumulator,BinaryOperator<U> combiner);
static class ScoreBean {
private String name; //学生姓名
private int score;   //分数,需要汇总该字段   
public ScoreBean(String name, int score) {
this.name = name;
this.score = score;
}
//get 和 set 方法省略
}