我有一个DoubleStream,它是从一个非常耗时的函数计算出来的,我想同时计算它的元素的平均值和数量。
问题是我不想因为这个耗时的值计算两次DoubleStream。我想从一个lambda表达式中获得平均值和数量的值。
我已经尝试了使用collect和map等所有方法,但都没有成功。
任何帮助都非常感激。
问题是我不想因为这个耗时的值计算两次DoubleStream。我想从一个lambda表达式中获得平均值和数量的值。
我已经尝试了使用collect和map等所有方法,但都没有成功。
final long count = products.stream()
.mapToDouble(this::timeConsumingCalculateRating)
.filter(rating -> rating > 0.0D)
.count();
final double averageRating = products.stream()
.mapToDouble(this::timeConsumingCalculateRating)
.filter(rating -> rating > 0.0D)
.average()
.orElse(0.0D);
任何帮助都非常感激。
peek
应该被称为tee
;) - WestCoastProjects