考虑我有这个方法,它采用多个参数,我想做一些简单的计算,如count,sum,average,min,max,看看这个原生的例子:
public static void calculate(int... param) {
int sum = 0;
for (int i : param) {
sum += i;
}
System.out.println(sum);
}
如何在Java-8 Stream中传递此参数(int... param)
并进行此计算?
如果你想对这些参数进行多次检查,只使用一个流来看看IntStream.summaryStatistics()
这将允许您这样做
IntSummaryStatistics statistics = IntStream.of(param).summaryStatistics();
statistics.getAverage();
statistics.getMax();
statistics.getMin();
statistics.getSum();
statistics.getCount();
IntSummaryStatistics是一个非常有用的类,用于从流中获取多个统计信息。
你可以像这样使用Array.stream
:
//pass your method parameters in stream like this
Arrays.stream(param).sum();
//--------------^---------
这是一些简单的计算:
public static void calculate(int... param) {
//calculate sum
Arrays.stream(param).sum();
//calculate average
Arrays.stream(param).average().getAsDouble();
//count number of paramettres
Arrays.stream(param).count();
//find maximum
Arrays.stream(param).max();
//find minimum
Arrays.stream(param).min();
//find the first element
Arrays.stream(param).sorted().findFirst();
}
也有可能:IntStream.of(param).sum();