我试图了解新的Java 8 Stream API.
http://docs.oracle.com/javase/tutorial/collections/streams/reduction.html
我找到了使用collect API查找数字平均值的示例.但我觉得,使用reduce()也可以做同样的事情.
public class Test {
public static void main(String[] args) {
// Using collect
System.out.println(Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
.collect(Averager::new, Averager::accept, Averager::combine)
.average());
// Using reduce
System.out.println(Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
.reduce(new Averager(), (t, u) -> {
t.accept(u);
return t;
}, (t, u) -> {
t.combine(u);
return t;
}).average());
}
private static class Averager {
private int total = 0;
private int count = …
Run Code Online (Sandbox Code Playgroud)