我是学生,正在学习函数式 Java 8。我有项目要做,但我不明白这个函数接口是如何工作的。我的老师告诉我“你应该知道这一点”,我正在寻求帮助来理解这个问题。它应该计算斐波那契数列
我得到了这个代码
StreamUtils.generateRest(Stream.of(1, 1), (a, b) -> a + b)
.limit(7)
.forEach(System.out::println);
StreamUtils.generateRest(Stream.of("AAA", "BB", "KKKK"), (a, b) -> a + b)
.limit(7)
.forEach(System.out::println);
StreamUtils.generateRest(Stream.of(i -> 0),
(BinaryOperator<UnaryOperator<Integer>>) (f, g) -> (x -> x == 0 ? 1 : x * g.apply(x - 1)))
.limit(10)
.map(f -> f.apply(7))
.forEach(System.out::println);
我做了这样的事情,但它不起作用
public class StreamUtils<T> {
public static <T> Stream generateRest(Stream<T> stream, BinaryOperator<T> binaryOperator) {
return Stream.of(stream.reduce((a, b) -> binaryOperator.apply(a, b)));
}
}
有人可以帮助我并解释如何解决这个问题?
梦里花落0921
30秒到达战场
相关分类