src/share/classes/java/util/stream/DoublePipeline.java

Print this page




 362         // An efficient version requires a double-specific map/set implementation.
 363         return boxed().distinct().mapToDouble(i -> (double) i);
 364     }
 365 
 366     // Terminal ops from DoubleStream
 367 
 368     @Override
 369     public void forEach(DoubleConsumer consumer) {
 370         evaluate(ForEachOps.makeDouble(consumer, false));
 371     }
 372 
 373     @Override
 374     public void forEachOrdered(DoubleConsumer consumer) {
 375         evaluate(ForEachOps.makeDouble(consumer, true));
 376     }
 377 
 378     @Override
 379     public final double sum() {
 380         // TODO: better algorithm to compensate for errors
 381         return reduce(0.0, Double::sum);


 382     }
 383 
 384     @Override
 385     public final OptionalDouble min() {
 386         return reduce(Math::min);
 387     }
 388 
 389     @Override
 390     public final OptionalDouble max() {
 391         return reduce(Math::max);
 392     }
 393 
 394     @Override
 395     public final OptionalDouble average() {
 396         double[] avg = collect(() -> new double[2],
 397                                (ll, i) -> {
 398                                    ll[0]++;
 399                                    ll[1] += i;
 400                                },
 401                                (ll, rr) -> {




 362         // An efficient version requires a double-specific map/set implementation.
 363         return boxed().distinct().mapToDouble(i -> (double) i);
 364     }
 365 
 366     // Terminal ops from DoubleStream
 367 
 368     @Override
 369     public void forEach(DoubleConsumer consumer) {
 370         evaluate(ForEachOps.makeDouble(consumer, false));
 371     }
 372 
 373     @Override
 374     public void forEachOrdered(DoubleConsumer consumer) {
 375         evaluate(ForEachOps.makeDouble(consumer, true));
 376     }
 377 
 378     @Override
 379     public final double sum() {
 380         // TODO: better algorithm to compensate for errors
 381         return reduce(0.0, Double::sum);
 382 
 383         // return summingDouble().finisher().apply();
 384     }
 385 
 386     @Override
 387     public final OptionalDouble min() {
 388         return reduce(Math::min);
 389     }
 390 
 391     @Override
 392     public final OptionalDouble max() {
 393         return reduce(Math::max);
 394     }
 395 
 396     @Override
 397     public final OptionalDouble average() {
 398         double[] avg = collect(() -> new double[2],
 399                                (ll, i) -> {
 400                                    ll[0]++;
 401                                    ll[1] += i;
 402                                },
 403                                (ll, rr) -> {