制作流以生成三的倍数
Make a stream to generate the multiples of three
我正在尝试生成一个整数流,所以我创建了一个静态方法 return 一个 Stream
这里可以找到方法:
public static Stream<Integer> multipleOf3(){
return Stream.iterate(1, x -> 3*x).limit(10);
}
但是这个方法return我不是三的倍数而是三的幂
我这样调用方法:
multipleDe3().forEach(System.out::println);
我得到了这个结果:
1
3
9
27
81
243
729
2187
6561
19683
我认为迭代函数使用之前的结果,种子 = 1,所以 x = 1 然后:
3*1 = 3,
3*3 = 9,
3*9 = 27, etc...
所以如果有人想在不使用之前的结果的情况下计算倍数,请告诉我
public static Stream<Integer> multipleOf3(){
return Stream.iterate(0, x -> 3+x).skip(1).limit(10);
}
public static void main(String[] args) {
multipleOf3().forEach(System.out::println);
}
输出:
3个
6个
9
12
15
18
21
24
27
30
我正在尝试生成一个整数流,所以我创建了一个静态方法 return 一个 Stream
这里可以找到方法:
public static Stream<Integer> multipleOf3(){
return Stream.iterate(1, x -> 3*x).limit(10);
}
但是这个方法return我不是三的倍数而是三的幂
我这样调用方法:
multipleDe3().forEach(System.out::println);
我得到了这个结果:
1
3
9
27
81
243
729
2187
6561
19683
我认为迭代函数使用之前的结果,种子 = 1,所以 x = 1 然后:
3*1 = 3,
3*3 = 9,
3*9 = 27, etc...
所以如果有人想在不使用之前的结果的情况下计算倍数,请告诉我
public static Stream<Integer> multipleOf3(){
return Stream.iterate(0, x -> 3+x).skip(1).limit(10);
}
public static void main(String[] args) {
multipleOf3().forEach(System.out::println);
}
输出: 3个 6个 9 12 15 18 21 24 27 30