Mas*_*oe2 1 java lambda java-stream
我想计算整数列表的平均值,然后将结果四舍五入(即> = .5向上舍入为最接近的整数,而<.5向下舍入为最接近的整数)。如何使用Java流执行此操作?
public static void main(String [] args){
List<Integer> values = new ArrayList<>();
values.add(60);
values.add(30);
values.add(20);
double avg = values.stream().mapToInt(a -> a).average().getAsDouble();
System.out.println(avg);
}
Run Code Online (Sandbox Code Playgroud)
我希望有类似的东西
...average().round(RoundingMode.HALF_UP).getAsInt();
Run Code Online (Sandbox Code Playgroud)
您的目的是舍入结果,而不是流本身中的值。因此,只需等到获得双精度值,然后Math.round()通过替换此值将其取整:
System.out.println(avg);
// output: 36.666666666666664
Run Code Online (Sandbox Code Playgroud)
有了这个:
System.out.println(Math.round(avg));
// output: 37
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |