排序(流)按绝对星等加倍
2022-09-02 01:35:45
我有一系列双精度值,我想总结一下并得到最大值。听起来非常适合这样。该方法有一个API注释,提醒我在一门计算机科学课程中学到的东西:如果按绝对值对值进行排序,则求和问题的稳定性往往会更好。但是,不让我指定要使用的比较器,它只会在我调用流时使用。DoubleStream.summaryStatistics()
getSum()
DoubleStream
Double.compareTo
sorted()
因此,我将值收集到 a 和调用中final Stream.Builder<Double> values = Stream.builder();
values.build()
.sorted(Comparator.comparingDouble(Math::abs))
.mapToDouble(a -> a).summaryStatistics();
然而,这看起来有些冗长,我宁愿使用而不是通用构建器。我是否错过了什么,或者我真的必须使用盒装版本的流才能指定比较器?DoubleStream.Builder