java中是否有与c# 's . aggregate (foo)方法等价的方法?
本文关键字:方法 foo aggregate 是否 java | 更新日期: 2023-09-27 18:14:48
我试图在java中实现这个问题的接受答案:
大于2个整数集合的最大公约数
但是我不知道如何实现聚合函数
使用Java 8时有一行代码:
public class GCD {
public static void main(String[] args) {
int[] ints = { 42, 21, 14, 70 };
System.out.println(gcd(ints));
}
public static int gcd(int[] ints) {
return Arrays.stream(ints).reduce((a, b) -> gcd(a, b)).getAsInt();
}
public static int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
}
输出为"7"。聚合函数称为约简。
可选:lambda也可以用方法引用来编写。
public static int gcd(int[] ints) {
return Arrays.stream(ints).reduce(GCD::gcd).getAsInt();
}